Java中流的分类
1.分类
1. 按流向分类
- 输入流:外界数据输入到本地
- 输出流:本地数据输出到其他平台
2. 按处理的数据单位分类
- 字节流:处理1个字节,可以处理一切二进制文件(音频文件、图片、歌曲)。
- 字符流:处理2个字节的Unicode字符,对不同语言文本支持性好,可以处理编码问题。
3.按功能分类
- 节点流:直接操作文件,网络等数据的流
- 处理流:使用装饰模式,来包装节点流,实现更多的功能。
2.详细图表
流分类 | 使用分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
抽象基类 | InputStream | OutputStream | Reader | Writer | |
节点流 | 访问文件 | FileInputStream | FileOutStream | FileReader | FileWriter |
访问数值 | ByteArrayInputStream | ByteArrayOutStream | CharArrayReader | CharArrayWriter | |
访问管道 | PipedInputStream | PipedOutStream | PipedReader | PipedWriter | |
访问字符串 | StringReader | StringWriter | |||
处理流 | 缓冲流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
转换流 | InputStreamReader | OutputStreamWriter | |||
对象流 | ObjectInputStream | ObjectOutputStream | |||
抽象基类(过滤) | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter | |
打印流 | PrintStream | PrintWriter | |||
推回输入流 | PushbackInputStream | PushbackReader | |||
特殊流 | DataInputStream | DataOutputStream |