string - Java Buffered reader running out of heap space -


i'm trying parse large file (~1.2 gb). lines of file bigger maximum allowed string size.

        filereader filereader = new filereader(filepath);         bufferedreader bufferedreader = new bufferedreader(filereader);          while ((line = bufferedreader.readline()) != null) {               //do         }          bufferedreader.close(); 

error:

exception in thread "main" java.lang.outofmemoryerror: java heap space     @ java.util.arrays.copyof(arrays.java:3332)     @ java.lang.abstractstringbuilder.expandcapacity(abstractstringbuilder.java:137)     @ java.lang.abstractstringbuilder.ensurecapacityinternal(abstractstringbuilder.java:121)     @ java.lang.abstractstringbuilder.append(abstractstringbuilder.java:569)     @ java.lang.stringbuffer.append(stringbuffer.java:369)     @ java.io.bufferedreader.readline(bufferedreader.java:370)     @ java.io.bufferedreader.readline(bufferedreader.java:389)     @ sax.parser.prettyprintxml.format(prettyprintxml.java:30) 

line 30 :

while ((line = bufferedreader.readline()) != null) { 

can suggest alternative approach case.

you using readline() on file doesn't have lines. tries read entire file single lines. not scale.

solution: don't. read chunk @ time, or maybe character @ time: whatever dictated unstated structure of file.


Comments