N
Nighthawk
Gast
Hallo,
mit dem folgenden Code erstelle ich eine Arraylist:
Hierbei wird eine Textdatei zeilenweise eingelesen und jedes element der Zeile in ein neues Element der Arraylist abgelegt.
Das Problem ist, bei großen Dateien (ca 10 - 20 MB) wird mir folgende Fehlermeldung ausgegeben:
Ich hoffe jemand kann mir helfen und mich auf meine Fehler hinweisen.
PS. ich muss dazu erwähnen dass ich ein Anfänger bin.
Gruß Alex
mit dem folgenden Code erstelle ich eine Arraylist:
Code:
public static ArrayList<String[]> ArraytoArraylist(String File) throws IOException{
String[] mqlline = null;
ArrayList<String[]> lines = new ArrayList<String[]>();
lines.clear();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(File) ) );
String zeile="";
while ((zeile=br.readLine()) !=null) {
mqlline = zeile.split("\\|") ;
lines.add(mqlline);
}
br.close();
mqlline = null;
zeile=null;
return lines;
}
Hierbei wird eine Textdatei zeilenweise eingelesen und jedes element der Zeile in ein neues Element der Arraylist abgelegt.
Das Problem ist, bei großen Dateien (ca 10 - 20 MB) wird mir folgende Fehlermeldung ausgegeben:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.lang.String.substring(String.java:1940)
at java.lang.String.subSequence(String.java:1973)
at java.util.regex.Pattern.split(Pattern.java:999)
at java.lang.String.split(String.java:2293)
at java.lang.String.split(String.java:2335)
at GuiSauber.ArraytoArraylist(GuiSauber.java:1371)
at GuiSauber.jButton4MouseClicked(GuiSauber.java:809)
at GuiSauber$11.mouseClicked(GuiSauber.java:553)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:253)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3995)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Ich hoffe jemand kann mir helfen und mich auf meine Fehler hinweisen.
PS. ich muss dazu erwähnen dass ich ein Anfänger bin.
Gruß Alex