用ByteArrayOutputStream解決IO流亂碼問題


IO中用ByteArrayOutputStream解決亂碼問題 --另一種解決亂碼的方法

IO中另外一種防止亂碼的方法:使用ByteArrayOutputStream
在創建ByteArrayOutputStream時,會自動創建一個以自動增長的緩存區,當數據讀取完后再一起統一寫出來,就不會有亂碼的問題了
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;

public class ByteArrayInputStreamTest {
public static void main(String[] args) throws Exception {
ByteArrayOutputStream out = null;
InputStream ins = new FileInputStream("test.txt");
int len = -1;
out = new ByteArrayOutputStream();
// 下面的read方法每次讀取一個字節,並返回這個字節的int類型
while ((len = ins.read()) != -1) {
// 每次寫入一個字節,out對象會自動創建一個反沖區,並自動增加大小
out.write(len);
System.out.println(out.size());
}
out.close();
ins.close();
System.out.println(out.toString());
}
}
每次寫入時打印out對象的長度,可以看到out對象的長度每次增加1,因為每次讀取一個字節,這樣把所有的數據讀取完后再調用toString方法轉換成字符就不會出現亂碼的問題了

 

轉自:http://blog.csdn.net/xcw931924821/article/details/7224702


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM