DataOutputStream()VS DataOutputStream(new BufferedOutputStream())

Pac*_*ier 10 java io

Java Tutorials中的代码显示了使用DataOutputStream类和DataInputStream类的示例.

代码片段如下所示:

//..
out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));
//..
in = new DataInputStream(new BufferedInputStream(new FileInputStream(dataFile)));
//..
Run Code Online (Sandbox Code Playgroud)

我想知道为什么BufferedOutputStream在我们创建一个新的时候需要创建一个新的DataOutputStream

这不是多余的,因为这个替代方案也有效吗?:new DataOutputStream(new FileOutputStream(dataFile));

如此页面声称的那样,DataStreams已经提供了缓冲文件输出字节流.那么"双缓冲"真的需要吗?

我已经修改了两行代码(输出和输入)的收走了BufferedOutputStream,并BufferedInputStream和一切似乎都工作得很好,所以我想知道什么是的目的BufferedOutputStreamBufferedInputStream

Ted*_*opp 9

在BufferedOutputStream中包装FileOutputStream通常会加快程序的整体输出速度.只有在编写大量数据时才会注意到这一点.在BufferedInputStream中包装InputStream也是一样的.缓冲区的使用只会影响效率,而不会影响正确性.