3

我想知道是否可以这样做

new PrintWriter(new BufferedWriter(new PrintWriter(s.getOutputStream, true))) 

在 Java 中,s 是一个 Socket?因为不可能从输出流创建 BufferedWriter,所以我用 PrintWriter 包装了输出流。但我想缓冲我的打印输出,所以我用 BufferedWriter 包装它。但最终我想使用 printWriter 打印,所以我用 PrintWriter 再次包装它。这在 Java 中合法吗?谢谢!

4

2 回答 2

4

这是合法的,但很笨拙。OutputStream您可以改为缓冲:

new PrintWriter(new BufferedOutputStream(s.getOutputStream), true)

也看看实现new PrintWriter(OutputStream, boolean)

public PrintWriter(OutputStream out, boolean autoFlush) {
  this(new BufferedWriter(new OutputStreamWriter(out)), autoFlush);
}

缓冲已经存在!

于 2012-02-19T21:31:28.410 回答
1

OutputStreamWriter是您要查找的课程。只需将流和编码传递给它,例如"UTF-8".

new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream(), encoding)), true) 
于 2012-02-19T21:47:08.333 回答