-
InputStream(抽象类)
-
FileInputStream
-
FileterInputStream
-
BufferedInputStream(与缓冲流相关的)
-
DataInputStream(专门读基本数据类型的)
-
InflaterInputStream
-
GZIPInputStream(对文件的一个压缩)
-
-
-
ObjectInputStream(对象相关的)
-
ByteArrayInputStream
-
PipedInputStream
-
-
OutputStream(抽象类)
-
FileOutputStream
-
FileterOutputStream
-
BufferedOutputStream(与缓冲流相关的)
-
DataOutputStream(专门写基本数据类型的)
-
PrintStream(与打印流相关的)
-
DeflaterOutputStream
-
GZIPOutputStream(对文件的一个压缩)
-
-
-
ObjectInputStream(对象相关的)
-
ByteArrayInputStream
-
PipedInputStream
-
-
Reader(抽象类)
-
InputStreamReader(与转换流相关的)
-
FileReader
-
-
BufferedReader(与缓冲流相关的)
-
-
Writer(抽象类)
-
OutputStreamWriter(与转换流相关的)
-
FileWriter
-
-
BufferedWriter(与缓冲流相关的)
-
PrintWriter(与打印流相关的)
-
一、字节流体系 (Byte Streams)
1. 输入流 (InputStream 体系)
mermaid
classDiagramInputStream <|-- FileInputStreamInputStream <|-- FilterInputStreamFilterInputStream <|-- BufferedInputStreamFilterInputStream <|-- DataInputStreamFilterInputStream <|-- PushbackInputStreamInputStream <|-- ObjectInputStreamInputStream <|-- ByteArrayInputStreamInputStream <|-- PipedInputStreamInputStream <|-- InflaterInputStreamInflaterInputStream <|-- GZIPInputStream
记忆口诀:
"文件过滤缓冲数,对象字节管道压"
文件:FileInputStream
过滤:FilterInputStream
缓冲:BufferedInputStream
数据:DataInputStream
对象:ObjectInputStream
字节数组:ByteArrayInputStream
管道:PipedInputStream
压缩:InflaterInputStream/GZIPInputStream
2. 输出流 (OutputStream 体系)
mermaid
classDiagramOutputStream <|-- FileOutputStreamOutputStream <|-- FilterOutputStreamFilterOutputStream <|-- BufferedOutputStreamFilterOutputStream <|-- DataOutputStreamFilterOutputStream <|-- PrintStreamOutputStream <|-- ObjectOutputStreamOutputStream <|-- ByteArrayOutputStreamOutputStream <|-- PipedOutputStreamOutputStream <|-- DeflaterOutputStreamDeflaterOutputStream <|-- GZIPOutputStream
记忆口诀:
"文件过滤缓冲印,对象字节管道压"
印(Print):PrintStream
其他与输入流对应
二、字符流体系 (Character Streams)
1. 输入流 (Reader 体系)
mermaid
classDiagramReader <|-- InputStreamReaderInputStreamReader <|-- FileReaderReader <|-- BufferedReaderReader <|-- StringReaderReader <|-- PipedReader
记忆口诀:
"转换文件缓冲字"
转换:InputStreamReader
文件:FileReader
缓冲:BufferedReader
字符串:StringReader
管道:PipedReader
2. 输出流 (Writer 体系)
mermaid
classDiagramWriter <|-- OutputStreamWriterOutputStreamWriter <|-- FileWriterWriter <|-- BufferedWriterWriter <|-- StringWriterWriter <|-- PipedWriterWriter <|-- PrintWriter
记忆口诀:
"转换文件缓冲印字"
印(Print):PrintWriter
其他与输入流对应
三、功能分类记忆法
1. 基础流
类型 | 输入 | 输出 |
---|---|---|
文件 | FileInputStream | FileOutputStream |
FileReader | FileWriter | |
内存 | ByteArrayInputStream | ByteArrayOutputStream |
StringReader | StringWriter | |
管道 | PipedInputStream | PipedOutputStream |
PipedReader | PipedWriter |
记忆:文件、内存、管道三兄弟
2. 装饰器流
功能 | 字节流 | 字符流 |
---|---|---|
缓冲 | BufferedInputStream | BufferedReader |
BufferedOutputStream | BufferedWriter | |
数据类型 | DataInputStream | - |
DataOutputStream | - | |
对象 | ObjectInputStream | - |
ObjectOutputStream | - | |
打印 | PrintStream | PrintWriter |
压缩 | GZIPInputStream/DeflaterStream | - |
转换 | - | InputStreamReader |
- | OutputStreamWriter |
记忆:
"缓数打对转压"
缓:缓冲流
数:数据流
打:打印流
对:对象流
转:转换流
压:压缩流
四、对比记忆表
功能 | 字节流类 | 字符流类 |
---|---|---|
基础文件 | FileInputStream | FileReader |
FileOutputStream | FileWriter | |
缓冲 | BufferedInputStream | BufferedReader |
BufferedOutputStream | BufferedWriter | |
数据转换 | - | InputStreamReader |
- | OutputStreamWriter | |
特殊功能 | DataInputStream | PrintWriter |
ObjectInputStream | - | |
GZIPInputStream | - |
五、终极记忆心法
-
先分两大类:字节流(Stream) vs 字符流(Reader/Writer)
-
再看三方向:
-
文件/内存/管道(基础)
-
缓冲/数据/对象/打印/压缩/转换(装饰)
-
-
最后记特殊:
-
只有字节流有:Data、Object、压缩流
-
只有字符流有:String、PrintWriter
-
一句话总结:
"字节字符分两家,文件内存管道基,装饰功能往上加,特殊功能单独记"