我想实例化一个缓冲写入器以写入套接字输出流。
String cs = "UTF-8";
OutputStream out = socket.getOutputStream();
Writer writer1 = new BufferedWriter(
new OutputStreamWriter(out, cs));
Writer writer2 = new OutputStreamWriter(
new BufferedOutputStream(out), cs);
Writer writer3 = new BufferedWriter(
new OutputStreamWriter(
new BufferedOutputStream(out), cs));
第一版和第二版之间有什么不明显的区别吗?哪个更适合写入套接字?第三个版本是不是有点“矫枉过正”?
最佳答案
第三个有点矫枉过正。
第一个是首选,因为它在通过文本到字节编码器发送数据之前缓冲数据,与一次一个字符相比,以 block 形式完成时性能更好。
OutputStreamWriter
的 javadoc甚至这样说:
For top efficiency, consider wrapping an OutputStreamWriter within a BufferedWriter so as to avoid frequent converter invocations. For example:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
关于java - 实例化缓冲编写器的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36458507/