チュートリアル「BufferedInputStream を使用して文字列でファイルを読み取る」を読み、ここからコードを取得しました。
問題は次の行です。
// byte array to store input
byte[] contents = new byte[1024];
では、どうすれば 1024 バイトであることを確認できますか? 1025 バイトのデータがあると、コードが壊れます。では、どうすればそれをより一般的にすることができますか?ありがとう。
チュートリアル「BufferedInputStream を使用して文字列でファイルを読み取る」を読み、ここからコードを取得しました。
問題は次の行です。
// byte array to store input
byte[] contents = new byte[1024];
では、どうすれば 1024 バイトであることを確認できますか? 1025 バイトのデータがあると、コードが壊れます。では、どうすればそれをより一般的にすることができますか?ありがとう。
配列を参照しているコードでは、呼び出しによって埋められます
byte[] contents = new byte[1024];
int bytesRead=0;
bytesRead = bin.read(contents));
bin.read はコンテンツのサイズを確認し、ストリームから最大 1024 バイトを読み取ります。
いいえ、壊れません。
魔法はここにある
while ((bytesRead = bin.read(contents)) != -1) {
bin.read(contents))
bytes
からの次のセットを読み取りますfile
。