Veröffentlicht 25. März 201312 j public static void main(String[] args) throws IOException { File f = new File("adressen.csv"); FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); //String zeile = ""; String zeile1 = br.readLine(); System.out.println(zeile1); String zeile2 = br.readLine(); System.out.println(zeile2); String zeile3 = br.readLine(); System.out.println(zeile3); String zeile4 = br.readLine(); System.out.println(zeile4); String zeile5 = br.readLine(); System.out.println(zeile5); String zeile6 = br.readLine(); System.out.println(zeile6); String zeile7 = br.readLine(); System.out.println(zeile7); String zeile8 = br.readLine(); System.out.println(zeile8); String zeile9 = br.readLine(); System.out.println(zeile9); String zeile10 = br.readLine(); System.out.println(zeile10); String zeile11 = br.readLine(); System.out.println(zeile11); //while ((zeile = br.readLine()) != null) { // System.out.println(zeile); // } br.close(); try { FileWriter fw = new FileWriter("adressen1.csv"); BufferedWriter bw = new BufferedWriter(fw); bw.write("Name: \t\t\t " + zeile1); bw.newLine(); bw.write("Straße: \t\t" + zeile2); bw.newLine(); bw.write("Plz/Ort: \t\t " + zeile3); bw.newLine(); bw.newLine(); bw.write("Name: \t\t\t " + zeile5); bw.newLine(); bw.write("Straße: \t\t" + zeile6); bw.newLine(); bw.write("Plz/Ort: \t\t " + zeile7); bw.newLine(); bw.newLine(); bw.write("Name: \t\t\t " + zeile9); bw.newLine(); bw.write("Straße: \t\t" + zeile10); bw.newLine(); bw.write("Plz/Ort: \t\t " + zeile11); bw.close(); } catch (IOException e) { System.err.println("Fehler"); } } Ich komm einfach nicht drauf, dass ich Code sparen kann. Ich moppel da einfach alles doppelt, kann mir da jemand weiterhelfen oder kleine Tipps geben, wie ich das einfacher machen kann ???
25. März 201312 j Benutze eine Schleife, ggf eine Array-Struktur, wenn Du immer blockweise 10 Zeilen lesen willst.
25. März 201312 j Benutze eine Schleife, ggf eine Array-Struktur, wenn Du immer blockweise 10 Zeilen lesen willst. Warum 10? Es sieht eher nach 3x3 aus und nach jeder dreiergruppe wird einfach eine Zeile ausgelassen (warumauchimmer), da Zeile 4 und Zeile 8 nicht genutzt werden.
25. März 201312 j Es sieht eher nach 3x3 aus und nach jeder dreiergruppe wird einfach eine Zeile ausgelassen (warumauchimmer), da Zeile 4 und Zeile 8 nicht genutzt werden. Stimmt, hatte ich gar nicht gesehen. Hab mich nur an der Anzahl an Variablen festgehalten (okay, dann hätten es 11 sein müssen). Mein Fehler.
26. März 201312 j Autor Ich versuche es gerade anders zu lösen. String[] tokens = adresse.split(";"); Adresse adresse1 = new Adresse(); adresse1.setFirstName(tokens[0]); adresse1.setSecondName(tokens[1]); adresse1.setStreet(tokens[2]); adresse1.setHousenumber(tokens[3]); adresse1.setPlz(tokens[4]); adresse1.setCity(tokens[5]); for (String token : tokens) { System.out.println(token); } So für eine Zeile funktioniert das wirklich super, ich weiß nur nicht wie ich 2 weitere Zeilen hinbekomme. Kann ich das nicht irgendwie in einer ArrayList speichern ? Falls ja wie ?
26. März 201312 j Kann ich das nicht irgendwie in einer ArrayList speichern ? Falls ja wie ? siehe http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#add(E)
26. März 201312 j Ich versuche es gerade anders zu lösen. So für eine Zeile funktioniert das wirklich super, ich weiß nur nicht wie ich 2 weitere Zeilen hinbekomme. Kann ich das nicht irgendwie in einer ArrayList speichern ? Falls ja wie ? Na, wenn es bei einer Zeile funktioniert, musst Du dies wiederholen, bis EOF oder NULL. BufferedReader br = null; try { br = new BufferedReader(new FileReader("adressen.csv")); String zeile = ""; while((zeile = br.readLine()) != null) { // gebe die Zeile aus oder verarbeite die Informationen weiter } } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); } catch (IOException ex) { ex.printStackTrace(); } } Bearbeitet 26. März 201312 j von uenetz
26. März 201312 j Autor Ja, das ich das ganze wiederholen muss, ist klar. Aber es wiederholt sich nur die selbe Zeile die andere wird gar nicht angefasst. *Ärgerlich*
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.