Java的IO(JavaSE中6) - 帮助我理解我的示例使用流和作家的影响
题
BufferedWriter out = new BufferedWriter( new OutputStreamWriter( new BufferedOutputStream( new FileOutputStream("out.txt") ) ) );
因此,让我看看,如果我理解这一点:一个字节输出流被打开文件“out.txt”。然后将其输送到缓冲输出流,以使文件操作更快。所缓冲的流被馈送到一个输出流写入器从字节字符弥合。最后,该写入器被馈送到缓冲作家...这增加了缓冲的另一层?
嗯...
解决方案
是的,你是正确的。
我觉得在这种情况下,你可以做很多短(也见的的BufferedWriter )
BufferedWriter out = new BufferedWriter(new FileWriter("foo.out"));
或者如果你想漂亮的打印功能:
的PrintWriter OUT =新的PrintWriter(新的BufferedWriter(新的FileWriter( “foo.out”)));
有可能的是,FileWriter
创建自己包装,但该类会知道哪种方式是最好的。
在Java流和作家的包装,以便您可以(像你这样通过堆叠他们的手段),它们组装到自己的需要。这些类不看什么类型的流/作家它们堆叠起来。在你的情况有几个缓冲区将意味着你实际上有两个缓冲区,在两个不同的类别。这意味着他们会采取一些额外的内存可能还有一些性能损失,但最有可能你永远不会注意到这一点(因为它相对于其他性能因素只是一个小的开销)。
不隶属于 StackOverflow