我试图从 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
可以调用该方法将其打印出来。这应该在一次调用中完成,为什么作者要while
循环执行它,不断检查可用性?