我想写一个套接字。通过阅读有关网络 IO 的信息,在我看来,写入它的最佳方法是执行以下操作:
OutputStream outs=null;
BufferedWriter out=null;
out =
new BufferedWriter(
new OutputStreamWriter(new BufferedOutputStream(outs),"UTF-8"));
BufferedWriter
会将输入缓冲到推荐的,OutputStreamWriter
因为它会阻止编写器为每个字符启动编码器。
然后BufferedOutputStream
将缓冲来自 的字节,Writer
以避免一次将一个字节潜在地放到网络上。
看起来有点矫枉过正,但这一切似乎都有帮助?感谢任何帮助..
编辑:从 javadoc 上OutputStreamWriter
:
每次调用 write() 方法都会导致对给定字符调用编码转换器。结果字节在写入底层输出流之前累积在缓冲区中。可以指定此缓冲区的大小,但默认情况下它对于大多数用途来说足够大。请注意,传递给 write() 方法的字符不会被缓冲。
为了获得最高效率,请考虑将 OutputStreamWriter 包装在 BufferedWriter 中,以避免频繁的转换器调用。例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));