對不起,我的英語。我想讀一個大文件,但是當我讀取錯誤發生時outOfMemoryError。我不明白如何在應用程序中處理內存。以下代碼不起作用:閱讀大文件錯誤「outofmemoryerror」(java)
try {
StringBuilder fileData = new StringBuilder(1000);
BufferedReader reader = new BufferedReader(new FileReader(file));
char[] buf = new char[8192];
int bytesread = 0,
bytesBuffered = 0;
while((bytesread = reader.read(buf)) > -1) {
String readData = String.valueOf(buf, 0, bytesread);
bytesBuffered += bytesread;
fileData.append(readData); //this is error
if (bytesBuffered > 1024 * 1024) {
bytesBuffered = 0;
}
}
System.out.println(fileData.toString().toCharArray());
} finally {
}
什麼是你可以使用盡可能高的Java版本?以這種方式讀取文件非常過時,除了因爲Android或其他原因需要使用Java 6以外。否則,你應該使用Java 8的Stream API。 – Bevor 2015-02-07 14:40:46
我使用1.70_71。我需要讀取大文件,而不是readLine()。因爲文件(5GB)只能包含一行 – qazqwerty 2015-02-07 14:57:18