2011-01-23 12 views
1

はバイトのPrintStream&PrintWriterの

+0

あなたの質問に詳しいことができればおそらく最善です。私はこれに多くの方法で答えることに近づくことができ、どの方法が適切かはわかりません。私はまた、私の答えで偶然に不快になりたくない... –

答えて

0

のSystem.outを表示するために使用されるタイプの印刷ストリームである出力の特別のPrintStreamが、表示されていますコンソールで。詳細についてはhereを確認してください。

3

私は推測する(java.lang.Systemからの)コードのこの作品は、それを説明する:

FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out); 
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true)); 

それが標準にFileOutputStreamを作成し、次にPrintStreamでそれをラップしています。 FileDescriptor.outは "標準出力ストリームへのハンドル"です。

そして、プラットフォームのデフォルトのエンコーディングを使用してバイトを文字に変換しています。

11

PrintStreamは、Java 1.0で導入され、他の中ではSystem.outの中で使用されました。その後、プラットフォームのデフォルトのエンコーディングを使用してバイトを文字に変換することが大きな間違いであることが判明したので、後でPrintWriterをJava 1.1で導入しました。文字コードを指定できるOutputStreamWriterを受け入れることができます。しかし、遅すぎてSystem.outを変更することはできませんでした。

+0

+1歴史的な情報 – Bozho

0

PrintStreamバイトストリームであるとPrintWriterは文字列であるが、最低レベルですべてが、私は、各PrintStreamOutputStreamWriterを内蔵し、それが出力用のバイトを生成するために、このライターを介してすべての文字を渡すことをどこかで読んだことが、バイト指向であります。

関連する問題