92

Reader と InputStream の違いは何ですか? そして、いつ何を使うのですか?Reader を使用して文字を読み取ることができる場合、なぜ inputstream を使用するのでしょうか。

4

5 に答える 5

146

InputStream は、リソースから情報を取得する生の方法です。いかなる種類の変換も実行せずに、データをバイトごとに取得します。画像データまたは任意のバイナリ ファイルを読み取る場合は、これが使用するストリームです。

Reader は文字ストリーム用に設計されています。読み取っている情報がすべてテキストの場合、Reader は文字のデコードを処理し、生の入力ストリームから Unicode 文字を提供します。任意のタイプのテキストを読む場合、これが使用するストリームです。

InputStreamReader クラスを使用して、InputStream をラップし、Reader に変換できます。

Reader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
于 2010-12-06T14:54:17.427 に答える
18

InputStreamsは、ストリームからバイトを読み取るために使用されます。そのため、画像、ビデオ、シリアル化されたオブジェクトなどのバイナリデータに役立ちます。

一方、リーダーは文字ストリームであるため、文字データの読み取りに最適です。

于 2010-12-06T14:51:34.840 に答える
1

1つはバイトを受け入れ、もう1つは文字を受け入れます。

于 2010-12-06T14:49:17.393 に答える