Der BufferedReader bietet neben den einfachen geerbten Lese-Methoden der Oberklasse Reader zwei weitere praktische Methoden:
· String readLine(): liest eine Zeile, und liefert am Ende null, wenn die letzte Zeile erreicht wurde.
· Stream<String> lines(): Liefert einen Stream von Strings. Neu in Java 8.
So ist einfach ein Programm formuliert, welches alle Zeilen einer Datei abläuft:
try ( BufferedReader in = Files.newBufferedReader( Paths.get( "lyrics.txt" ), StandardCharsets.ISO_8859_1 ) ) {
for ( String line; (line = in.readLine()) != null; )
System.out.println( line );
}
catch ( IOException e ) {
e.printStackTrace();
}
Beispiel
Mit der Stream-API sieht es ähnlich aus; kurz skizziert:
try ( BufferedReader in = Files.newBufferedReader( … ) ) {
in.lines().forEach( System.out::println );
}
Falls es beim Lesen über den Stream zu einem Fehler kommt, wird eine RuntimeException vom Typen UncheckedIOException ausgelöst.