私は、Oreilly の Java IO からの次のコードを理解しようとしています。ファイルから読み取り、コンソールに書き込むことになっています。
try {
FileInputStream fis = new FileInputStream("README.TXT");
int n;
while ((n = fis.available()) > 0) {
byte[] b = new byte[n];
int result = fis.read(b);
if (result == -1) break;
String s = new String(b);
System.out.print(s);
} // End while
} // End try
catch (IOException e) {System.err.println(e);}
System.out.println();
私の質問は:
available
メソッドは一度に利用可能な最大長を見つけ、それをread
印刷するためにメソッドを呼び出すことができます。これは 1 回の呼び出しで実行する必要がありますが、作成者がwhile
ループで実行し、可用性を継続的にチェックするのはなぜですか?