- 按數據流向:輸入流和輸出流
輸入和輸出都是從程序的角度來說的。
輸入流:數據流向程序
輸出流:數據從程序流出。
- 按處理單位:字節流和字符流
字節流:一次讀入或讀出是8位二進制
字符流:一次讀入或讀出是16位二進制
JDK 中后綴是 Stream 是字節流;后綴是 Reader,Writer 是字符流
- 按功能功能:節點流和處理流
節點流:直接與數據源相連,讀入或寫出
處理流:與節點流一塊使用,在節點流的基礎上,再套接一層
最根本的四大類:InputStream(字節輸入流),OutputStream(字節輸出流),Reader(字符輸入流),Writer(字符輸出流)
四大類的擴展,按處理單位區分
- InputStream:FileInputStream、PipedInputStream、ByteArrayInputStream、BufferedInputstream、SequenceInputStream、DataInputStream、ObjectInputStream
- OutputStream:FileOutputStream、PipedOutputStream、ByteArrayOutputStream、BufferedOutputStream、DataOutputStream、ObjectOutputStream、PrintStream
- Reader:FileReader、PipedReader、CharArrayReader、BufferedReader、InputStreamReader
- Writer:FileWriter、PipedWriter、CharArrayWriter、BufferedWriter、InputStreamWriter、PrintWriter
常用的流
- 對文件進行操作:FileInputStream(字節輸入流)、FileOutputStream(字節輸出流)、FileReader(字符輸入流)、FileWriter(字符輸出流)
- 對管道進行操作:PipedInputStream(字節輸入流)、PipedOutStream(字節輸出流)、PipedReader(字符輸入流)、PipedWriter(字符輸出流)
- 字節/字符數組:ByteArrayInputStream、ByteArrayOutputStream、CharArrayReader、CharArrayWriter
- Buffered 緩沖流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter
- 字節轉化成字符流:InputStreamReader、OutputStreamWriter
- 數據流:DataInputStream、DataOutputStream
- 打印流:PrintStream、PrintWriter
- 對象流:ObjectInputStream、ObjectOutputStream
- 序列化流:SequenceInputStream
