IO中用ByteArrayOutputStream解决乱码问题
2011-03-01 23:29
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方法转换成字符就不会出现乱码的问题了 |