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
