• ベストアンサー

ストリームについて

バイト・ストリームとキャラクタ・ストリームの2種類が存在していますが、バイト・ストリームは、生のバイト (イメージデータなど) を読み込む時、また、文字(テキストファイル)を読み込むときはキャラクタ・ストリームを利用するという認識で良いのでしょうか? テキストファイル(アルファベット、日本語)処理ならどんな場合でもキャラクタ・ストリーム(FileReader,FileWriter)を使えばいいという考えでよろしいのかということでしょうか? 逆にバイト・ストリームで読み込んで処理する場合も可能ですよね? その場合、テキストファイルをバイト・ストリームで扱うメリットってあるのでしょうか? 何故疑問に思ったのかと言いますと、参考書にバイト・ストリームを扱った例文があり、テキストファイルを処理していたためです。テキストファイルの処理ならキャラクタストリームでいいんじゃないかと思い、逆にバイトストリームで扱うメリットを知りたかったのです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

メリットはあまりないと思いますが、エンコードの解釈をしなくて済む分だけ高速になります。その代わり読んでいるテキストが US-ASCII や ISO-8859-1 のような1バイトで1文字を表すエンコード以外のエンコードだった場合に正常な動作は期待できません。(UNICODEへの変換処理を自分でする場合は別ですが)。

xyz12345
質問者

お礼

なるほど。 エンコードの会社の分だけ高速になるということ ですか。ありがとうございました。

その他の回答 (1)

  • covachan
  • ベストアンサー率38% (46/120)
回答No.2

まず、データとは何かを理解してください。 テキストデータをバイナリ処理した場合、そのデータは使用できますが、 バイナリデータをテキスト処理した場合はバイナリとして使用できません。 例えば実験してみてください。 エクセルファイルなどのバイナリデータをメモ帳などで開いた後にメモ帳で保存したファイルはエクセルで開けますか? テキストデータはキャラクタ・ストリームで、バイナリデータはバイト・ストリームで処理するのはデータを処理する上での前提です。

xyz12345
質問者

お礼

ありがとうございました。

関連するQ&A