Saya memiliki kode berikut yang terbaca di file berikut, tambahkan \r\n ke akhir setiap baris dan letakkan hasilnya di buffer string:
public InputStream getInputStream() throws Exception {
StringBuffer holder = new StringBuffer();
try{
FileInputStream reader = new FileInputStream(inputPath);
BufferedReader br = new BufferedReader(new InputStreamReader(reader));
String strLine;
//Read File Line By Line
boolean start = true;
while ((strLine = br.readLine()) != null) {
if( !start )
holder.append("\r\n");
holder.append(strLine);
start = false;
}
//Close the input stream
reader.close();
}catch (Throwable e){//this is where the heap error is caught up to 2Gb
System.err.println("Error: " + e.getMessage());
}
return new StringBufferInputStream(holder.toString());
}
Saya mencoba membaca dalam file 400Mb, dan saya mengubah ruang tumpukan maksimal menjadi 2Gb namun masih memberikan pengecualian tumpukan memori habis. Ada ide?