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
Post a Comment