Zum Inhalt springen

Einlesen aus Datei und Schreiben in andere Datei


Empfohlene Beiträge

Geschrieben

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 ???

Geschrieben
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.

Geschrieben

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.

Geschrieben

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 ?

Geschrieben (bearbeitet)
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 von uenetz
Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...