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! 🙂