PrintStreamとPrintWriter APIはほぼ同じで、両方ともさまざまな形式のデータを出力でき、構築方法はほぼ同じです
Printwriterには、追加の受容作家パラメーターがあります
API比較:
それで、それらの違いは何ですか? Stackflowから
主な意味は、2つのクラスの関数が基本的に同じであり、PrintStreamを実装することもでき、Printwriterの関数がより強力であることです。ただし、PrintWriterが比較的遅く表示されていたため、以前のSystem.outはPrintStreamを使用して実装したため、互換性のためにPrintStreamは放棄されませんでした。
2つのクラスの最大の違いは、PrintStreamが文字を出力し、文字をバイトに変換するときにシステムのデフォルトエンコード形式を使用することです。これにより、データが別のプラットフォームに送信され、別のエンコード形式を使用して別のプラットフォームデコードがデコードされると問題が発生し、制御不能な要因があります。 PrintWriterは、作家を渡すときにプログラマーが指定でき、文字をバイトに変換するときのエンコード形式の方が優れています。
次のプログラムは、同じ出力目的を処理するときに2つのオブジェクトをprintStreamとprintWriterがどのように行うかを示しています。このプログラムは、画面に「簡略化された中国人」の4人のキャラクターを表示します。
StreamWriterDemo.java Package onlyfun.caterpillar; Import java.io。*; public class streamwriterdemo {public static void main(string [] args){byte [] sim = {(byte)0xbc、(byte)0xf2、// simplified(byte)0xcc、(byte)0xccd、(byte)0xcc、(byte)0xcc、(byte)0xcc、(byte)0xcc、(byte)0xcc、(byte) (byte)0xd0、// medium(byte)0xce、(byte)0xc4}; // text inputstreamreader inputstreamReader = new inputstreamReader(new bytearrayinputStream(sim)、 "gb2312"); printwriter printwriter = New OutputStreamWriter(GB2312 ");" GB2312 "); printStream(system.out、true、 "gb2312"); int in; {printwriter.println((char)in); printstream.println((char)in);} inputstreamreader.close(); printstream.close();} catch(arrayindexofboundsection e){e.printstrace();} catch(ioexction e) {e.printstacktrace();}}}要約します
上記は、PrintStreamとPrintwriterの違いに関するこの記事の全体的な内容であり、すべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!