2

チュートリアル「BufferedInputStream を使用して文字列でファイルを読み取る」を読み、ここからコードを取得しました。

http://examples.javacodegeeks.com/core-java/io/bufferedinputstream/read-file-in-string-with-bufferedinputstream/

問題は次の行です。 // byte array to store input byte[] contents = new byte[1024];

では、どうすれば 1024 バイトであることを確認できますか? 1025 バイトのデータがあると、コードが壊れます。では、どうすればそれをより一般的にすることができますか?ありがとう。

4

2 に答える 2

1

配列を参照しているコードでは、呼び出しによって埋められます

byte[] contents = new byte[1024];
int bytesRead=0;
bytesRead = bin.read(contents));

bin.read はコンテンツのサイズを確認し、ストリームから最大 1024 バイトを読み取ります。

于 2013-08-12T11:13:03.280 に答える
0

いいえ、壊れません。

魔法はここにある

while ((bytesRead = bin.read(contents)) != -1) {

bin.read(contents))bytesからの次のセットを読み取りますfile

私からの質問:ストリーミング中にバッファ バイト配列がどのように継続的にいっぱいになるのですか?

于 2013-08-12T11:12:16.307 に答える