一、概述

I/O(Input/Output)用于处理设备间的数据传输,如:文件的读写、网络间的通讯等。

I/O 分为 输入(Input)输出(Output)。而输入/输出是相对的,比如下图
image.png
从不同的角度箭头指向所表示的意义也不同,不过在编写代码时,需要从程序的角度去看输入/输出。

从程序角度:Input(输入)

读取外部数据(磁盘、光盘等存储设备数据)到程序(内存)中

从程序角度:Output(输出)

程序(内存)数据输出到磁盘、光盘等存储设备中

Java程序中,对于数据的I/O 操作以 “流(Stream)”的方式进行

二、流的分类

[IO]-概述 - 图2

三、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