Datei auslesen & Werte in Variable speichern

dezzard

Mitglied
Guten Morgen,

ich habe eine .txt Datei mit Personen (Vorname, Nachname, Alter, Größe ,Schuhgröße, Lieblingsessen).
Beispiel:
Code:
Max;Mustermann;30;180.0;42;Nudeln
Franz;Ferdinand;40;190.0;46;Steak
Hubert;Herrmann;50;190.0;46;Döner
Peter;Lustig;60;190.0;46;Pommes

Auslesen mit FileReader und BufferedReader und mir den Inhalt der .txt Datei auf der Konsole anzeigen lassen, funktioniert wunderbar.

Ich will diese Werte aber in Variablen speichern, sprich Max = Vorname usw und natürlich ";" als Trennzeichen verwenden.

Ich poste keinen Code, weil ich nichts vorzuweisen habe.
Ich bin hier nicht auf der Suche nach einer kompletten Lösung.

Mir fehlen wohl einfach nur die nötigen Schlagworte für Google etc. um zu finden, was ich hier suche & brauche. Jemand einen Tipp für mich?

Besten Dank 🙂
 
Darf auch schöner gemacht werden:
Java:
// Person.java
public class Person {
    String vorname;
    String nachname;
    int alter;
    double groesse;
    int schuhgroesse;
    String lieblingsessen;
}
Java:
// PersonReader.java
import java.io.IOException;

import java.nio.file.Files;
import java.nio.file.FileSystems;
import java.nio.file.Path;

import java.util.List;
import java.util.stream.Collectors;

public class PersonReader {
    public List<Person> read(String filename) throws IOException {
        Path path = FileSystems.getDefault().getPath(filename);
        return Files.lines(path)
            .filter(l -> !l.trim().isEmpty())
            .map(l -> l.split(";"))
            .map(PersonReader::toPerson)
            .collect(Collectors.toList());
    }

    public static Person toPerson(String[] arr) {
        Person p = new Person();
        p.vorname = arr[0];
        p.nachname = arr[1];
        p.alter = Integer.parseInt(arr[2]);
        p.groesse = Double.parseDouble(arr[3]);
        p.schuhgroesse = Integer.parseInt(arr[4]);
        p.lieblingsessen = arr[5];
        return p;
    }
}
 
Zunächst einmal vielen Dank an Alle 🙂

Habe es jetzt so gelöst.

Java:
public class Verwaltung
{
    private List<Person> personen = new ArrayList<Person>();




    public void addPerson(Person person2BeAdded)
    {
        personen.add(person2BeAdded);
    }

    public void writePersonToSheet()
    {
        try
        {
            FileWriter fw = new FileWriter("Personen.txt");
            BufferedWriter bw = new BufferedWriter(fw);
            for (Person currentPerson : personen)
            {
                if (currentPerson.getVorname() == null)
                {
                    throw new NullPointerException(
                            "Vorname darf nicht null sein");

                } else
                {
                    bw.write(currentPerson.getVorname() + ";"
                            + currentPerson.getName() + ";"
                            + currentPerson.getAlter() + ";"
                            + currentPerson.getGroeße() + ";"
                            + currentPerson.getSchuhgroeße() + ";"
                            + currentPerson.getLieblingsessen());
                    bw.newLine();

                }

            }
            bw.close();
        } catch (IOException e)
        {
            e.printStackTrace();
        } catch (NullPointerException e)
        {
            e.printStackTrace();
        }

    }

    public void readPersonFromSheet()
    {
        try
        {
            FileReader fr = new FileReader("Personen.txt");
            BufferedReader br = new BufferedReader(fr);

            String zeile = "";
            try
            {
                while ((zeile = br.readLine()) != null)
                {
                    System.out.println(zeile);

                    String[] parts = zeile.split(Pattern.quote(";"));
                    int alter = Integer.parseInt(parts[2].trim());
                    double groeße = Double.parseDouble(parts[3].trim());
                    int schuhgroeße = Integer.parseInt(parts[4].trim());

                    Person p = new Person(parts[0].trim(), parts[1].trim(),
                            alter, groeße, schuhgroeße, parts[5].trim());

                    personen.add(p);

                }

                br.close();
            } catch (IOException e)
            {

                e.printStackTrace();
            }

        } catch (FileNotFoundException e)
        {

            e.printStackTrace();
        } catch (NullPointerException e)
        {
            e.printStackTrace();
        }

    }
    }


Java:
package dev;

public class Person
{

    private int schuhgroeße;
    private int alter;
    private double groeße;
    private String name, vorname, lieblingsessen;

    public Person(String vorname, String name, int alter, double groeße,
            int schuhgroeße, String lieblingsessen)
    {

        try
        {
            this.vorname = vorname;

        } catch (NullPointerException ex)
        {
            ex.printStackTrace();

        }

        try
        {
            this.name = name;

        } catch (NullPointerException ex)
        {
            ex.printStackTrace();

        }

       

        if (alter > 0)
        {
            this.alter = alter;
        } else
        {
            System.out.println("Kein negatives Alter möglich");
        }

        if (groeße > 0)
        {
            this.groeße = groeße;
        } else
        {
            System.out.println("Keine negative Größe möglich");
        }

        if (schuhgroeße > 0)
        {
            this.schuhgroeße = schuhgroeße;
        } else
        {
            System.out.println("Keine negative Schuhgröße möglich");
        }
       
        try
        {
            this.lieblingsessen = lieblingsessen;

        } catch (NullPointerException ex)
        {
            ex.printStackTrace();

        }

    }

    public int getSchuhgroeße()
    {
        return schuhgroeße;
    }

    public void setSchuhgroeße(int schuhgroeße)
    {
        this.schuhgroeße = schuhgroeße;
    }

    public int getAlter()
    {
        return alter;
    }

    public void setAlter(int alter)
    {
        this.alter = alter;
    }

    public double getGroeße()
    {
        return groeße;
    }

    public void setGroeße(double groeße)
    {
        this.groeße = groeße;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getVorname()
    {
        return vorname;

    }

    public void setVorname(String vorname)
    {
        if (vorname != null)
        {
            this.vorname = vorname;
        }
    }

    public String getLieblingsessen()
    {
        return lieblingsessen;
    }

    public void setLieblingsessen(String lieblingsessen)
    {
        this.lieblingsessen = lieblingsessen;
    }

}
 
Das try-catch
Code:
        try
        {
            this.vorname = vorname;
        } catch (NullPointerException ex)
        {
            ex.printStackTrace();
        }
kannst Du Dir sparen - es wird niemals eine NPE auftreten.
 
Dafür wäre es hier
Java:
        if (alter > 0)
        {
            this.alter = alter;
        } else
        {
            System.out.println("Kein negatives Alter möglich");
        }
angebracht, eine IllegalArgumentException zu werfen...
 

Neue Themen


Zurück
Oben