Java I/O Stream Notes (2012.03.05)
java.io.* : Input/Output related classes
Stream: A logical connection between two devices for data flow
- Unidirectional: separate streams needed for input and output
- FIFO (First In First Out) structure
Classification by data unit:
- Byte stream: handles all types of data (images, video, etc.)
InputStream / OutputStream
- Character stream: handles text data only
Reader / Writer
Classification by function:
- Node stream: directly connected to the data source
- Filter stream: wraps node stream to add functionality (buffering, etc.)
Key classes:
- FileInputStream / FileOutputStream: file byte I/O
- FileReader / FileWriter: file character I/O
- BufferedReader / BufferedWriter: buffered character I/O
- DataInputStream / DataOutputStream: primitive type I/O
- ObjectInputStream / ObjectOutputStream: object serialization I/O
* System.in: standard input (keyboard)
* System.out: standard output (monitor)
* read() returns -1 at end of stream
