Stworzenie obiektów poprzez plik tekstowy

0

Cześć kolejny projekt do nauki i kolejne problemy :)

Mam plik tekstowy: (Wszystko oddzielone tabulatorem)
Id Nazwisko Imie MiejsceUrodzenia
22 Stasiek Wacek Wrocław
25 Łukomska Ela Bliżyn
27 Maciejewski Darek Opole
30 Szyba Karol Książęce

I Sposób:

public static void main(String[] args) throws IOException {
        BufferedReader odczyt = new BufferedReader(new FileReader("Próbny.txt"));
        List<Człowiek> zapisaneObiektyLudziow = new ArrayList<>();

        String line = odczyt.readLine();
        String[] dane = line.split("    ");
       
        while (line != null) {
            int id_lekarza = Integer.parseInt(dane[0]);
            String nazwisko = dane[1];
            String imie = dane[2];
            String miejsceUrodzenia2 = dane[3];
            System.out.println(id_lekarza);

            zapisaneObiektyLudziow.add(new Człowiek(id_lekarza, nazwisko, imie, miejsceUrodzenia2));

        }
        odczyt.close();
    }

|| Sposób:

    public static void main(String[] args) throws FileNotFoundException {
        Scanner input = new Scanner(new File("Próbny.txt"));
        List<Człowiek> zapisaneCzlowieki = new ArrayList<>();
        input.useDelimiter("    ");


        while(input.hasNext()) {

            int id = Integer.parseInt(input.next());
            String nazwisko = input.next();
            String imie = input.next();
            String miejsceUrodzenia = input.next();

            zapisaneCzlowieki.add(new Człowiek(id,nazwisko,imie,miejsceUrodzenia));

        }
        input.close();
    }

Odczytuje i tworze nowe obiekty a następnie zapisuje je do Listy.
Problem 01: Jak usunąć pierwszą linijkę? Ręcznie w pliku usunąłem pierwszą linijkę, ale nie tak to powinno wyglądać.
Problem 02: Próbowałem Scannerem i BufferedReader i krzaki. Sposobem Scanner udało mi się wszystko tylko zamieniłem tabulator na "-" w pliku tekstowym oraz zmieniłem linijkę : <input.useDelimiter("-|\n");>. A z tabulatorem nie idzie ....A z BufferedReader to nwm. Porszę także o wytłumaczenie co nie tak robię :)

3

Zacznij od Files.lines("test.txt") a do tego Stream::skip(n)

0

Update:

Udało mi się pominąć 1 wiersz. Zapisałem go po prostu do zmiennej i ją pominąłem, a i kiedy usunąłem metodę input.Delimeter("") to tak jakby wszystko zaczeło chodzić, mimo że są te tabulatory pomiędzy to bez żadnych dodatkowych metod z każdego obiektu można użyć gettera.
Poproszę o potwierdzenie, czy tak to może wyglądać ;)

    public class Main {
    public static void main(String[] args) throws IOException {
    Scanner input = new Scanner(new File("Próbny.txt"));

    List<Człowiek> zapisaneCzlowieki = new ArrayList<>();


    while (input.hasNext()) {
        String nextLine = input.nextLine(); // pominięcie 1 wiersza;

        int id = Integer.parseInt(input.next());
        String nazwisko = input.next();
        String imie = input.next();
        String miejsceUrodzenia = input.next();

        zapisaneCzlowieki.add(new Człowiek(id, nazwisko, imie, miejsceUrodzenia));

    }
    input.close();

    zapisaneCzlowieki.stream()
            .forEach(System.out::println);
}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1