blauerninja
Cadet 4th Year
- Registriert
- Apr. 2011
- Beiträge
- 65
Hallo Leute,
vorab: ich hab das Internet schon durchforstet, um zu verstehen wie in Java ein Output in eine Datei geschrieben wird. Allerdings wird bei mir die Datei nicht gefüllt, sprich bleibt leer. Vllt seht ihr etwas, was ich übersehe.
Vorhaben: ich habe einen Primzahlentest durchgeführt. Ein boolean-Array von 0 bis n. true sind die Primzahlen, diese sollen nun in einer for-Schleife ausgelesen, in einem String zwischengespreichert werden (da Java einen Stream in Bytes zerlegt und weiterverarbeitet, richtig?) und wenn der String einen entsprechende Länge hat, soll er in eine Datei gespeichert werden. Danach wird der String geleert und mit den weiteren Zahlen gefüllt. Solange bis alle Zahlen abgearbeitet wurden.
Hier das entsprechende Codestück:
boolean[] prim;
int count = 0;
String sb = "";
File datei = new File("primes.txt");
FileWriter output;
===============================
for (int i = 2; i < prim.length; i++) {
if (prim) {
sb += i + " ";
++count;
}
if (count == 5) {
sb += "\n";
count = 0;
}
if (sb.length() > 10000){
try {
output = new FileWriter(datei, true);
output.write(sb);
output.close();
sb = "";
} catch (IOException e) { }
}
} // Ende for ()
So wie ich das jetzt verstehe, wird ein neuer Filewriter erstellt und mit dem Inhalt der Datei primes.txt (exestiert bereits) gefüllt. Dann wird der String hinten drangehängt. Mit close() wird der Output ans Betriebssystem weitergegeben, das den Output in die Datei umleitet, richtig? Zum Schluss leere ich den String.
Wie gesagt, die Datei bleibt leer. Bei den Leuten, wo ich dieses Vorgehen abgeschrieben habe, funktioniert es. Was mach ich falsch?
Vielen Dank schon im Vorraus. Und ja, nicht ganz kompliziert schrieben. Ich kenn mich zwar mit Objektorientierung aus, aber einen ganz tiefen Einblick habe ich in Java noch nicht.^^
vorab: ich hab das Internet schon durchforstet, um zu verstehen wie in Java ein Output in eine Datei geschrieben wird. Allerdings wird bei mir die Datei nicht gefüllt, sprich bleibt leer. Vllt seht ihr etwas, was ich übersehe.
Vorhaben: ich habe einen Primzahlentest durchgeführt. Ein boolean-Array von 0 bis n. true sind die Primzahlen, diese sollen nun in einer for-Schleife ausgelesen, in einem String zwischengespreichert werden (da Java einen Stream in Bytes zerlegt und weiterverarbeitet, richtig?) und wenn der String einen entsprechende Länge hat, soll er in eine Datei gespeichert werden. Danach wird der String geleert und mit den weiteren Zahlen gefüllt. Solange bis alle Zahlen abgearbeitet wurden.
Hier das entsprechende Codestück:
boolean[] prim;
int count = 0;
String sb = "";
File datei = new File("primes.txt");
FileWriter output;
===============================
for (int i = 2; i < prim.length; i++) {
if (prim) {
sb += i + " ";
++count;
}
if (count == 5) {
sb += "\n";
count = 0;
}
if (sb.length() > 10000){
try {
output = new FileWriter(datei, true);
output.write(sb);
output.close();
sb = "";
} catch (IOException e) { }
}
} // Ende for ()
So wie ich das jetzt verstehe, wird ein neuer Filewriter erstellt und mit dem Inhalt der Datei primes.txt (exestiert bereits) gefüllt. Dann wird der String hinten drangehängt. Mit close() wird der Output ans Betriebssystem weitergegeben, das den Output in die Datei umleitet, richtig? Zum Schluss leere ich den String.
Wie gesagt, die Datei bleibt leer. Bei den Leuten, wo ich dieses Vorgehen abgeschrieben habe, funktioniert es. Was mach ich falsch?
Vielen Dank schon im Vorraus. Und ja, nicht ganz kompliziert schrieben. Ich kenn mich zwar mit Objektorientierung aus, aber einen ganz tiefen Einblick habe ich in Java noch nicht.^^