日期:2014-05-20  浏览次数:20686 次

BufferedOutputStream代替DataOutputStream?
本帖最后由 jdgdf566 于 2013-11-14 12:05:37 编辑
在需求的功能相同,都具有的情况下。例如只比较这两个方法:
BufferedOutputStream的 void write(byte[] b, int off, int len)  
代替
DataOutputStream的 void write(byte[] b, int off, int len)
怎么样?前者效率更高?
有人说BufferedOutputStream的 void write(byte[] b, int off, int len)传输二进制文件的时候与前者不一样,会出错。是吗?

------解决方案--------------------
一般都是用bufferedoutputstream去创建dataoutputstream




    DataOutputStream out2 = 
    new DataOutputStream( 
    new BufferedOutputStream(new FileOutputStream("Data.txt"))
    );

如果你不是特别需要写INT, DOUBLE之类的数据,可以直接用BUFFEREDOUTPUTSTREAM


------解决方案--------------------
引用:
Quote: 引用:

buffer是字符流 data是字节流..前者涉及编码..后者无编码干扰
BufferedOutputStream类里面没有涉及字符集的地方啊
看错了..刚写代码在用bufferedreader看混了..前者是有缓存..可以数据通过mark和reset重置数据操作..后者不可..感觉速度应该是差不多..这个没研究过..观望大神出现...