5 · Intermediate · lesson 31 of 41

File I/O (NIO.2)

Modern paths, files and streams.

Java
import java.nio.file.*;
import java.nio.charset.StandardCharsets;

Path p = Path.of("notes.txt");
Files.writeString(p, "hello", StandardCharsets.UTF_8);
String text = Files.readString(p);
List<String> lines = Files.readAllLines(p);

try (var stream = Files.lines(p)) {
    stream.filter(l -> !l.isBlank()).forEach(System.out::println);
}
Key takeaways
  • ✓Prefer java.nio.file over the old java.io.File API.
  • ✓Files.lines() returns a lazy stream — close it.