转载请注明出处:http://blog.youkuaiyun.com/github_39430101/article/details/77075109
简介
流分为输入流和输出流,是用来处理设备上的数据。这里的设备指硬盘,内存,网络传输,缓冲等。Java IO中包含了许多InputStream、OutputStream、Reader、Writer的子类。这样设计的原因是让每一个类都负责不同的功能。各类用途如下:
- 文件访问
- 网络访问
- 内存缓存访问
- 线程内部通信(管道)
- 缓冲
- 过滤
- 读写基本类型
- 读写对象
IO流类
IO流分类
按方向分类
输入流 | |
---|---|
InputStream | 所有字节输入流的父类 |
FileInputStream | 文件字节输入流 |
ByteArrayInputStream | 字节数组输入流 |
Reader | 读取字符流的抽象类 |
FileReader | 文件字符输入流 |
输出流 | |
---|---|
OutputStream | 所有字节输出流的父类 |
FileOutputStream | 文件字节输出流 |
ByteArrayOutputStream | 字节数组输出流 |
Writer | 写入字符流的抽象类 |
FileWriter | 文件字符输出流 |
按功能分类
按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类
节点流 | |
---|---|
父类 | InputStream OutputStream Reader Writer |
文件 | FileInputStream FileOutputStream FileReader FileWriter |
数组 | ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter |
字符串 | StringReader StringWriter |
管道 | PipedInputStream PipedOutputStream PipedReader PipedWriter |
处理流 | |
---|---|
缓冲流 | BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter |
转换流 | InputStreamReader OutputStreamWriter |
数据流 | DataInputStream DateOutputStream |
对象流 | ObjectInputStream ObjectOutputStream |
管道 | PipedInputStream PipedOutputStream PipedReader PipedWriter |