IO流概述
输入input:读取外部数据(磁盘,光盘等存储设备的数据)到程序(内存中)
输出output: 将程序(内存)数据输出到磁盘,光盘等存储设备中
把自己站位到程序的角度理解
按操作数据单位不同分为:
字节流(视频,图片,音乐 二进制流的形式本质上一个个字节组成)
字符流(文本文件)
按数据流的流向不同分为: 输入流, 输出流
按流的角色的不同分为:
节点流(直接处理文件的流 4个)
FileInputStream(输入) FileOutPutStream(输出)
FileReader(输入) FileWriter(输出)
处理流(作用在节点流或者处理流上,如缓冲等)
(抽象基类) | 字节流 | 字符流 |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
1. java的IO流共涉及40多个类,实际上非常规则,都是从上面四个抽象基类派生的
2. 由这四个类派生出来的子类名称都是以其父类名作为子类名后缀
IO流体系
分类 | 使用分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
抽象基类 | 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 |
All that work will definitely pay off