今天晚上用FileInputStream練習的時候怎麼也讀取不出來文件中的內容,找了半天,終於找到問題所在(趕緊記下來,下次不能再犯)!
public static void readTest2() {
File file = new File("f:/aaa/a.txt");
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(file);
// 4. 準備一個8KB字節緩衝數組
byte[] buf = new byte[1024 * 8];
int length = -1;
// 5. 讀取數據
while ((length = fileInputStream.read(buf)) != -1) {
System.out.println(new String(buf, 0, length));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != fileInputStream) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
上面是方法的源代碼,下面調用一下:
public class Demo {
public static void main(String[] args){
readTest2();
}
}
正常情況下應該輸出f:/aaa/a.txt 這個文件中的內容,但是我運行了好幾遍沒有結果
下面是我的a.txt中的內容(內容過多,就截圖看一下):
看到這裏想必知道的就能看出來哪裏出問題了,我的文件中的內容沒有任何分隔符,全程一句下來,我定義的緩衝數組根本放不下,導致結果出不來!!!
使用FileInputStream文件操作輸入字節流時,定義的緩衝數組如果容量如果小於文件中某一串內容時,就會讀取失敗
文章內容如果有什麼問題,歡迎在下面評論指出-_-