概述
I/O 是input/output的缩写,IO技术是非常实用的技术,用于处理设备之间的数据传输,如读/写文件,网络通讯等
Java程序中,对于数据的输入/输出操作以“流(Stream)” 的方式进行
输入input :读取外部数据(磁盘,光盘等存储设备的数据)到程序(内存)中
输出output:将程序(内存)数据输出到磁盘,光盘等存储设备中
- 按操作数据单位不同分为:字节流(8 bit 图片,音频),字符流(16 bit 文本)
- 按数据流的流向不同分为:输入流,输出流
- 按流的角色的不同分为:节点流,处理流
(抽象基类) | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutputStream | Wrider |
- Java的IO流共涉及40多个类,实际上非常规则,都是从如下4个抽象基类派生的
- 由这四个类派生出来的子类名称都是以其付类命作为字类名后缀
IO体系
分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
---|---|---|---|---|
抽象基类 | InputStream | OutputStream | Reader | Writer |
访问文件 | FileInputStream | FileOutputStream | FileReader | FileWriter |
访问数组 | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
访问管道 | PipedInputStream | PipedOutputStream | PipedReader | PiperWriter |
访问字符串 | StringFriter | StringWriter | ||
缓冲流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
转换流 | InputStreamReader | OutputStreamWriter | ||
对象流 | ObjectInputStream | ObjectOutputStream | ||
FilterInputStream | FilterOutPutStream | FilterReader | FilterWriter | |
打印流 | PrintStream | PrintWriter | ||
推回输入流 | PushbackInputStream | PushbackReader | ||
特殊流 | DataInputStream | DataOutputStream |