Liebes Forum
Ich habe eine Funktion geschrieben, die eine Textdatei mit 15k Zeichen in entsprechend viele zerlegen soll, wenn die max. erlaubte Anzahl 5k sind. Das sollten 3 sein.
Das Problem beginnt schon beim einlesen. Mittels einer Schleife lasse ich die Datei lesen, jedoch bricht die Schleife schon nach dem 4. Zeichen ab, obwohl ich bedingte, daß die read()-Funktion bis zum Dateiende (-1) lesen soll. Warum geht es nicht, wie ich das gemacht habe?
Danke Euch und Grüße,
Semo
Ich habe eine Funktion geschrieben, die eine Textdatei mit 15k Zeichen in entsprechend viele zerlegen soll, wenn die max. erlaubte Anzahl 5k sind. Das sollten 3 sein.
Das Problem beginnt schon beim einlesen. Mittels einer Schleife lasse ich die Datei lesen, jedoch bricht die Schleife schon nach dem 4. Zeichen ab, obwohl ich bedingte, daß die read()-Funktion bis zum Dateiende (-1) lesen soll. Warum geht es nicht, wie ich das gemacht habe?
Java:
public static void aufspalten(String file) throws IOException {
char[] cbuf = new char[4999];
int dateien = 0;
int off = 0;
int len = 4999;
int cBufSize = 0;
String newFiles = "";
FileReader fr = new FileReader(file);
FileWriter fw;
int n = 0; // Debug Krempel
while (fr.read(cbuf) != -1) {
cBufSize++;
System.out.println(cbuf[n]); // Debug Krempel
n++;
}
while (fr.read(cbuf) != -1) {
if (cBufSize <= 4999) {
// if (cbuf.length <= 4999) {
System.out.println("<5000 Zeichen. Abbruch.");
break;
} else {
newFiles = file + ++dateien;
}
fw = new FileWriter(newFiles);
if (cBufSize >= 4999) {
// if (cbuf.length >= 4999) {
fw.write(cbuf, off, len);
off += 4999;
} else {
len -= off;
fw.write(cbuf, off, len);
}
}
fr.close();
}
Danke Euch und Grüße,
Semo