Hallo Forum.
ich habe ein Ordner mit vielen Textdateien. Diese will ich in irgendeiner Reihenfolge einlesen und in eine einzige Textdatei packen.
Das Programm läuft, jedoch bricht es nicht ab. Ich habe 45 einzelne Textfiles mit insgesamt 155 KB. Die neue Textdatei, welche alle enthält hat nach einigen Sekunden 50 Megabyte (!)..
Die Schleife bricht igendwie nicht ab?? Nach der letzten Datei fängt es glaub von vorne an?
Jemand Hinweise? Ich danke!
Mfg Huck
ich habe ein Ordner mit vielen Textdateien. Diese will ich in irgendeiner Reihenfolge einlesen und in eine einzige Textdatei packen.
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CamExtractor {
protected static final String RFOLDER = "/home/huck/proggies/TextExtractor/textfiles";
protected static File hCam;
protected static FileReader hCamFR;
protected static BufferedReader hCamBFR;
protected static File hW;
protected static FileWriter hCamFW;
protected static BufferedWriter hCamBFW;
public static void main(String[] args) {
String folder;
if (args.length < 2) {
System.out.println("--> just "+args.length+" arguments");
System.out.println("--> current folder: "+RFOLDER);
folder = RFOLDER;
} else {
System.out.println("--> "+args.length+" arguments");
System.out.println("--> current folder: "+args[1]);
folder = args[1];
}
try {
if (hW != null && hW.exists()) {
hW.delete();
hW = new File(folder, "cam.txt");
hCamFW = new FileWriter(hW);
hCamBFW = new BufferedWriter(hCamFW);
} else {
hW = new File(folder, "cam.txt");
hCamFW = new FileWriter(hW);
hCamBFW = new BufferedWriter(hCamFW);
}
} catch (IOException e) {
e.printStackTrace();
}
hCam = new File(folder);
File[] aF = hCam.listFiles();
scanDirectory(aF);
System.out.println(" QUIT ");
try {
hCamFR.close();
hCamBFR.close();
hCamFW.close();
hCamBFW.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static int scanDirectory(File[] currentFiles) {
if (currentFiles==null || currentFiles.length==0) return -1;
for (File file : currentFiles) {
// if (file.isDirectory()) {
// // falls notwendig
//// handleDir(file);
// // rekursiver aufruf
// scanDirectory(file.listFiles());
// // falls notwendig: aktuelles verzeichnis löschen
// file.delete();
// continue;
// }
// aktuelle datei
handleFile(file);
}
return 0;
}
private static int handleFile(File f){
try {
hCamFR = new FileReader(f);
hCamBFR = new BufferedReader(hCamFR);
String zeile;
while( (zeile = hCamBFR.readLine()) != null ) {
System.out.println(zeile);
hCamBFW.write(zeile+"\n");
hCamBFW.flush();
}
hCamBFW.flush();
hCamFR.close();
hCamBFR.close();
hCamFR = null;
hCamBFR = null;
return 0;
} catch (FileNotFoundException e) {
e.printStackTrace();
return -1;
} catch (IOException e) {
e.printStackTrace();
return -2;
}
}
}
Das Programm läuft, jedoch bricht es nicht ab. Ich habe 45 einzelne Textfiles mit insgesamt 155 KB. Die neue Textdatei, welche alle enthält hat nach einigen Sekunden 50 Megabyte (!)..
Die Schleife bricht igendwie nicht ab?? Nach der letzten Datei fängt es glaub von vorne an?
Jemand Hinweise? Ich danke!
Mfg Huck