前言
java的IO通过java.io包下的类和接口来支持,包括输入输出两种流,每种流又分为字节流和字符流,
输入输出流:字节流和字符流
字节流:以字节为单位处理输入输出
字符流:以字符来处理输入输出
java7对原有io进行升级,提供了一系列全新的API放在NIO中
java对象的序列化机制
使用序列化机制能把java对象转换成二进制字节流,将java对象存储在磁盘中,或者在网络上传输java对象
------------------------------------------------------------------------------------------------------------------------------------
流:是从起源到接收的有序数据
java把所有的流类型都放在java.io包中
java提供了io流的抽象,java对io流进行抽象,封装成io流类
java的io流一共有40多个类,都是从4个抽象基类派生(InputStream/Reader OutputStream/Writer)
InputStream/Reader:字节输入流 字符输入流(每8位1读 每16位1读)
OutputStream/Writer:字节输出流 字符输出流 (每8位1写 每16位1写)
流的分类
1输入流/输出流
输入流: 由InputStream和Reader做抽象基类
只能从中读数据,不能从中写数据
输出流:由OutputStream和Writer做抽象基类
只能向里写数据,不能从中写数据
2字节流/字符流
字节流和字符流的用法几乎一样,区别在于所操作的数据单元不同,
字节流操作的数据单元是8位的字节,每8位1读
字符流操作的数据单元是16位的字符,每16位1读
3节点流/处理流
节点流/低级流:可以向一个特定的io设备读写数据的流
处理流/高级流:用于对一个已存在的流进行连接或封装