一、概述
I/O(Input/Output)用于处理设备间的数据传输,如:文件的读写、网络间的通讯等。
I/O 分为 输入(Input) 和 输出(Output)。而输入/输出是相对的,比如下图
从不同的角度箭头指向所表示的意义也不同,不过在编写代码时,需要从程序的角度去看输入/输出。
从程序角度:Input(输入)
读取外部数据(磁盘、光盘等存储设备数据)到程序(内存)中
从程序角度:Output(输出)
将程序(内存)数据输出到磁盘、光盘等存储设备中。
Java程序中,对于数据的I/O 操作以 “流(Stream)”的方式进行
二、流的分类
三、IO流类表
| 分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
|---|---|---|---|---|
| 基类 | InputStream | OutputStream | Reader | Writer |
| 访问文件 | FileInputStream | FileOutputStream | FileReader | FileWriter |
| 访问数组 | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
| 访问管道 | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
| 访问字符串 | StringReader | StreamWriter | ||
| 缓冲流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
| 转换流 | InputStreamReader | OutputStreamWriter | ||
| 对象流 | ObjectInputStream | ObjectOutputStream | ||
| FilterInputStream | FilterOutputStream | |||
| 打印流 | PrintStream | PrintWriter | ||
| 推回输入流 | PushbackInputStream | PushbackReader | ||
| 特殊流 | DataInputStream | DataOutputStream |
