3

私はそれが可能かどうか疑問に思っています

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

sがソケットであるJavaでは? 出力ストリームから 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 に答える