Kontynuacja pracy z plikami – w poprzednim wpisie omówiliśmy jak zrobić zapis do pliku, dziś zajmiemy się odczytem. Podobnie jak przy zapisie mamy wiele opcji do wyboru 😉

01. BufferedReader

Podobnie jak w przypadku zapisu do pliku przy użyciu BufferedWriter, BufferedReder oferuje nam bardzo przejrzyste API do odczytania zawartości pliku:

public static void bufferedReader() throws IOException {
    try (BufferedReader reader = new BufferedReader(new FileReader("test.txt"))) {
        System.out.println(reader.readLine());
    }
}

02. Scanner

Scanner jest kolejną klasą która może nam umożliwić odczytanie zawartości pliku:

public static void scannerLineReader() throws FileNotFoundException {
    try (Scanner scanner = new Scanner(new File("test.txt"))) {
            System.out.println(scanner.nextLine());
    }
}

Klasy scanner możemy również używać do czytania pliku z użyciem “ogranicznika”, ogranicznikiem może być wybrany przez nas znak. Scanner będzie czytał do pierwszego wystąpienia danego znaku, kolejne części są czytane z wykorzystaniem metody next().

public static void scannerReader() throws FileNotFoundException {
    try (Scanner scanner = new Scanner(new File("test.txt"))) {
        scanner.useDelimiter(" ");
        while (scanner.hasNext()) {
            System.out.println(scanner.next());
        }
    }
}

03. Files

Od Javy 7 pojawiła się klasa Pomocnicza: Files, z jej pomocą możemy ułatwić sobie nieco czytanie plików.

public static void filesReader() throws IOException {
    System.out.println(Files.readAllLines(Path.of("test.txt")).get(0));
}

Podsumowanie

Tylko żeby ktoś nie pomyślał że temat jest wyczerpany! W tym krótkim wpisie przedstawiłem jedynie podstawowe metody do czytania plików. Jeśli ktoś potrzebuje wgłębić się w zaawansowane operacje pracy z plikami, serdecznie zachęcam do zajrzenia do dokumentacji 🙂 Dokumentacja Javy jest na prawdę na dość dobrym poziomie! 🙂