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ドキュメントは非常に明確に記述されています。