NOTE
Java File Streams
Reading and writing files with stream APIs, buffering, resource cleanup, and when NIO Files is simpler.
This is a historical learning note and may contain outdated or incomplete understanding.
FileInputStream and FileOutputStream expose byte-oriented file I/O. Wrap them in buffering when many small operations are expected and always close them with try-with-resources.
For many common file tasks—reading text, copying, moving, walking directories—the java.nio.file.Files API is shorter and exposes richer options.
Treat file paths, permissions, overwrite behavior, durability (fsync/force), and atomic-move guarantees as filesystem/platform concerns rather than assuming one universal behavior.