読者です 読者をやめる 読者になる 読者になる

InputStream.read

InputStreamのreadメソッドは、バイトストリームからデータを読み込むメソッド・・・。

InputStream (Java Platform SE 6)

いくつかオーバーロードメソッドがあり、前回のように1バイトずつではなく、byte配列にバイトデータを一気に読み込むこともできる・・・。

読み込むバッファとなるbyte配列のbuf(長さ128)と読み込んだバイト数を持つint型のlenを用意・・・。

readメソッドにbufを渡すと、bufに"test.txt"のバイトデータを読み終わるまで格納する・・・。
そして読み込んだバイト数をlenに格納・・・。

byte配列はそのままではSystem.out.printで出力できないので、charにキャストして1文字ずつ出力・・・。
(charはUnicodeなので、2バイト文字の場合はこの方法はできないが、今回は読み込むデータがASCIIコードのテキストなので特別に・・・。)

f:id:BG1:20151001134143p:plain

"test.txt"にこのように書いておいて、実行すると、

ABCDE
PQRS
XYZ

と一気に読み込まれているのがわかる・・・。

Sample/MainClass.java at master · bg1bgst333/Sample · GitHub