Ordner aus txt datei erstellen

Karl Hermann

Mitglied
Hi, ich ha:6;6;5be zu hause eine .txt Datei mit einer Klassenliste, welche vorlgendermaßen angelegt ist.

Nr;Name;Vorname;Geburtstag;Note1;Note2;Mündliche Note

als es sieht z.b. so aus:
1;Mustermann;Heinz;01.01.1993;4;3;2;
2;Musterfrau;Christina;02.02.1993;6;6;6

Nun soll für jeder Person dieser Text Datei ein Ordner (ohne Inhalt) erstellt werden, welche folgendermaßen aussehen:

Mustermann_Heinz
Musterfrau_Christina

Wie mache ich so etwas?
 

FerFemNemBem

Bekanntes Mitglied
Halloechen,

Du liest die Textdatei Zeilenweise ein und splittest jede Zeile Semikolonbasiert. Nun verknuepfst Du Nach- und Vorname mit einem Unterstrich und erstellst ein entsprechendes Verzeichnis (dabei achtest Du am besten noch darauf, dass es das nicht schon gibt... sonst muessen sich am Ende 5 "Klaus Mueller"s noch ein Verzeichnis teilen - das wollen die sicher nicht ;)).

Gruss, FFNB.
 

Karl Hermann

Mitglied
Hmm ehrlich gesagt habe ich fast gar nichts:(

Das Einlesen einer txt datei habe ich hinbekommen, aber wie weiter?
Ich kapiere gerade nichts!

Kann mir vlt. jemand ein Beispiel code geben?
 

eRaaaa

Top Contributor
Eine Möglichkeit von vielen:
Java:
		String row = "1;Mustermann;Heinz;01.01.1993;4;3;2;";
		String[] split = row.split(";"); //Mustermann = Index 1, Heinz = Index 2
		new File(split[1]+"_"+split[2]).mkdir(); // erstelle Ordner Mustermann_Heinz
(evtl. den Pfad bei new File() noch angeben....)
 

Karl Hermann

Mitglied
Ersteinmal danke, das funktioniert soweit:toll:

Allerdings habe ich noch ein Problem.
Laut deinem Code erstellt er nur den Ordner von Heinz Mustermann.
Ich habe hier aber eine Datei mit 20 Personen und am besten sollte für die ganzen Personen ein Ordner erstellt werden!
 

XHelp

Top Contributor
Dann musst du es auch in die Schleife packen, mit welcher du die Datei einließt. Laut deiner Aussage hast du es ja schon geschafft. Ansonsten: zeit mal dein Code
 

Karl Hermann

Mitglied
Dann musst du es auch in die Schleife packen, mit welcher du die Datei einließt. Laut deiner Aussage hast du es ja schon geschafft. Ansonsten: zeit mal dein Code

Mein Code sieht so aus:
Java:
FileReader leser = new FileReader(f);
      BufferedReader in = new BufferedReader(leser);

      String line = "";
      System.out.println();


        
        String row = "1;Assmann;Jens;06.08.1988;12;11;3;8";
        String[] split = row.split(";");
        while((line = in.readLine())!=null){
          new File(split[1]+"_"+split[2]).mkdir();
        }

Aber da wird auch nur der Ordner für Mustermann_Heinz erstellt!
 

XHelp

Top Contributor
Versuch doch den Code zu verstehen und nicht einfach irgendwie zusammenzukopieren.
Im Code von eRaaaa hast du deine Zeile in
Code:
row
und machst damit irgendwas. Wenn du die Datei einließt steht jede Zeile in
Code:
line
......
 

Karl Hermann

Mitglied
Oh mann... war ich dumm!
Hab mir den Code nochmal genauer angeschaut und es jetzt hinbekommen!

Java:
 String row = in.readLine();

        while((row = in.readLine())!=null){

          String[] split = row.split(";");
          new File(split[1]+"_"+split[2]).mkdir();

Danke euch

Hab aber noch eine Frage:
Wie kann ich ändern, wohin die Ordner gespeichert werden?
Also dass z.B. erst noch ein Ordner mit dem name der Klasse erstellt wird (z.B. 11a) und dort drinne die ganzen Schüler-Ordner!
 

XHelp

Top Contributor
Naja, dann musst du das im File-Objekt angeben:
Java:
new File("DeinGewuenschterPfad/"+nameDesOrdners).mkdirs();
Wobei du da auch aufpassen musst ob das Eltern-Verzeichnis existiert oder nicht. Oder eben wie hier mkdirs verwenden.
 

Neue Themen


Oben