Java läsa stor fil java.lang.OutOfMemoryError: Java heap space
Hej
Jag har ett litet problem när jag skall läsa in en stor fil (233MB) i java för att sedan använda datan.
Filen är på 20000 rader de 10000 första inehåller 2 "poster" och varje rad därefter inehåller 5000 "poster"
Tänkte fråga om någon har en bra lösning på detta här är min kod för att läsa in från fil och den fungerar på mindre filer men ej på den stora.
Den kommer till rad ~17600 sedan får den java.lang.OutOfMemoryError: Java heap space
Koden körs på en i7-860 @3.8Ghz och 8GB RAM i programmet eclipse
MVH The_Phenom
public void readFile(String path) {
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(new DataInputStream(new FileInputStream(path))));
String line;
while ((line = in.readLine()) != null) {
if (line.contains("#")) {
} else if (line.contains("=")) {
tempVar = line.split("=");
n = Integer.parseInt(tempVar[1]);
persons = new String[n * 2 + 1];
persons[0]="x";
pref = new LinkedList[n * 2 + 1];
} else if (line.contains(":")) {
tempVar = line.split(": ");
int i = Integer.parseInt(tempVar[0]);
tempVar = tempVar[1].split(" ");
pref[i] = new LinkedList<Integer>();
for (int j = 0; j < tempVar.length; j++) {
pref[i].add(Integer.parseInt(tempVar[j]));
}
} else {
tempVar = line.split(" ");
if (!(tempVar[0].isEmpty())) {
int i = Integer.parseInt(tempVar[0]);
persons[i] = tempVar[1];
}
}
}
} catch (Exception e) { e.printStackTrace(); }
}