IO流四个基本抽象类 InputStream OutputStream Reader Writer
其中 InputStream OutputStream为字节流 (处理图像,视频,等媒体文件时使用)
节点流
处于IO第一线,所有操作必须经过他们进行,处理流可以对节点流进行包装,提高性能
I.字节流 (文本,图像,视频,等媒体文件)
输入流 InputStream FileInputstream ByteArrayInputSteam
操作 read字节数组
中间容器 byte[] flush=new byte[长度]
接收长度 int Len
循环读取 while(-1!=(len=流.read(fluah))) {}
操作 输出,拷贝
输出流
OutputStream FileOutputstream ByteArrayOutputSteam
操作 流.write(字符数组,0,长度);
II.字符流 (仅文本)
输入流 Read FileRead
操作read字符数组
中间容器 char[] flush=new char[长度]
接收长度 int Len
循环读取 while(-1!=(len=流.read(flush))){}
操作 输出,拷贝
输出流 Writer FileWriter
操作 流.write(字符数组,0,长度)
输出
III.处理流 提高性能 处理流不直接连接到数据源,处理流的流,如BufferReader
1.转换流 解码与编码字符集问题 字节流到字符流的转化用到InputStreamReader OutputStreamWriter BufferReader
输入流 InputStreamReader 解码
输出流 OutputStreamReader 编码
2.缓冲流 提高性能
输入流 BufferedInputStream BufferReader
输出流 BufferedOutputStream BufferWriter
3.处理数据+类型 实现数据类型的转换
输入流 DataInputStream readXXX
输出流 DataOutputStream wirteXXX
4.引用类型 实现Serializable
序列化:把Java对象转换为字节序列的过程。
反序列化:把字节序列恢复为Java对象的过程。
序列化 ObjectOutputStream.writeObject
反序列化 ObjectInputStream.readObject
IV.打印流 PrintStream 文件内容的打印 以及将控制台内容打印到文件