我在試着從Oreilly的Java IO中瞭解以下代碼片段。它應該從文件中讀取和寫入到控制檯:在Java中如何使用FileInputStream
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
循環中執行該操作,並持續檢查可用性?
這不是你的問題的答案,但我只是想讓你知道,一般來說,你的文件閱讀代碼不必是這麼低的水平。查看[Apache Commons IOUtils](http://commons.apache.org/io/apidocs/org/apache/commons/io/IOUtils.html)以獲取更高級別的方法,當您準備好使用它們時。 –
好吧,我也會通過他們... – SexyBeast