deswegen einzelne Programmteile testen,
hier ein Testprogramm:
[code=Java]
public class Test
{
public static void main(String[] args)
throws Exception
{
long time = System.currentTimeMillis();
System.out.println("start");
File f = new File("test.txt");
BufferedWriter b = new BufferedWriter(new FileWriter(f));
for (int i = 0; i < 160000; i++)
{
b.write("eine lange Zeile1");
b.write("eine lange Zeile2");
b.write("eine lange Zeile3");
b.write("eine lange Zeile4");
b.write("eine lange Zeile5");
b.newLine();
}
b.close();
System.out.println((System.currentTimeMillis() - time) + " file size: " + f.length());
Scanner s = new Scanner(f);
List<String> lines = new ArrayList<String>();
while (s.hasNext())
{
lines.add(s.nextLine());
}
Runtime r = Runtime.getRuntime();
long mem = r.totalMemory() - r.freeMemory();
System.out.println((System.currentTimeMillis() - time) + " lines: " + lines.size() + ", mem: " + mem);
}
}
[/code]
Ausgabe:
[code]
start
219 file size: 13920000
2844 lines: 160000, mem: 36954632
[/code]
das Programm erzeugt sich gar erst die Textdatei, 160.000 Zeilen, 14 MB,
danach alles eingelesen, 37 MB Speicherverbrauch (Faktor 2-5 Mehrverbrauch kann man ruhig annehmen)
alles zusammen unter 3 Sekunden
-------
> Es Zeile für Zeile nocheinmal in eine Textzeile schreiben wäre nur sinnvoll wenn ich mit dem Speicher nicht hinkäme?!
ich beziehe mich hauptsächlich auf die Dauer der Übertragung an die DB,
jedes Insert einzeln wäre ewig langsamer, aber vielleicht kann man auch aus Java tausende übergeben, 'Batch' und so,
genaues kann ich da nicht sagen
was ich weiß ist, wie oben zu sehen, dass man in wenigen Sekunden die halbe Festplatte an Text vollschreiben und auch lesen kann