PrintWriterとBufferedWriterの違い
Difference Between Printwriter
BufferedWriter:テキストを文字出力ストリームに書き込み、個々の文字をバッファリングして、個々の文字、配列、および文字列を効率的に書き込みます。取得した文字はwrite()メソッドで出力でき、newline()を使用して行を折り返すことができます。 BufferedWriterの文字ストリームは、flushメソッドを呼び出してフラッシュする必要があります。また、BufferedWriterは文字ストリームでのみ動作できます。バイトストリームを操作する場合は、BufferedInputStreamを使用します。
PrintWriter:オブジェクトのフォーマットされた表現をテキスト出力ストリームに出力します。 BufferedWriterに対するPrintWriterの利点は、PrintWriterが自動更新をオンにした場合、PrintWriterがprintln、prinlf、またはformatメソッドを呼び出すと、出力ストリームのデータが自動的に更新されることです。 PrintWriterは、文字ストリームだけでなく、バイトストリームも受信できます。
ソケットプログラミングでは、BufferedWriterをPrintWriterに置き換えてみてください。 PrintWriterの利点は次のとおりです。
1. PrintWriter print、printlnメソッドは任意のタイプのパラメーターを受け入れることができ、BufferedWriterのwriteメソッドは文字、文字配列、および文字列のみを受け入れることができます。
2. PrintWriterのprintlnメソッドは自動的に改行を追加します。BufferedWriterはnewLineメソッドへの呼び出しを表示する必要があります
3.PrintWriterメソッドは例外をスローしません。例外が気になる場合は、checkErrorメソッドを呼び出して、例外が発生するかどうかを確認する必要があります。
4. PrintWriterコンストラクターは、自動更新キャッシュ(autoflush)を実装するためのパラメーターを指定できます。
5.PrintWriterはより広く構築されています。
——————————————————————-
総括する:
BufferedReaderのreadLineメソッドを使用してBufferedWriterの文字ストリームを受信する場合、readLineは改行文字の読み取り時に行文字全体を返すため、BufferedWriterメソッドはnewLineメソッドを使用して、文字を入力した後に改行操作を実行します。次に、キャラクターストリームをブラシで消します。 PrintWriterは自動更新を開始でき、その中のprintlnメソッドには改行操作があります。したがって、コードはBufferedWriterよりも実装が簡単です。
PrintWriterとBufferedWriterはどちらもjava.io.Writerを継承しているため、多くの機能は同じです。ただし、PrintWriterには、さまざまなプラットフォームで改行文字を書き込むためのprintln()メソッドが用意されており、BufferedWriterはバッファサイズを任意に設定できます。 OutputStreamは、次のようにPrintWriterに直接渡すことができます(BufferedWriterは受信できません)。
PrintWriter out = new PrintWriter(new BufferedOutputStream( new FileOutputStream('foo.out')))
または、OutputStreamWriterを使用してOutputStreamをWrtierに変換します。次に、BufferedWriterを使用できます。 JDKAPIドキュメントは非常に明確に記述されています。