标题:java基础复习—IO流
学习内容:
1、 IO流的基本概述
2、 缓冲流
3、 转换流
4、 对象流
5、 流写代码的基本步骤
内容详情:
1、IO流的基本概述
1.1.流的分类
按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)
按数据流的流向不同分为:输入流,输出流
按流的角色的不同分为:节点流,处理流
1.2.流的体系结构
2、 缓冲流
先介绍处理流
处理流
处理流,就是套接”在已有的流的基础上,第一张图片很生动的描绘了。
缓冲流
处理流的一种
BufferedInputStream
BufferedOutputStream
BufferedReader
Bufferedwriter
作用:提供流的读取、写入的速度 提高读写速度的原因:内部提供了一个缓冲区
至于相关操作的注意点,基本的几个步骤,创造文件、创造流、先造字节流,再造缓冲流、read,write等操作、关闭流,关闭缓冲流就默认关闭了字节流
3、 转换流
转换流
1.转换流:属于字符流
InputStreamReader:将一个字节的输入流转换为字符的输入流outputStreamwriter:将一个字符的输出流转换为字节的输出流
2.作用:提供字节流与字符流之间的转换
3.解码:字节、字节数组——>字符数组、字符串
编码:字符数组、字符串——>字节、字节数组
编码集
ASCII:美国标准信息交换码。 用一个字节的7位可以表示。
IS08859-1:拉丁码表。欧洲码表 用一个字节的8位表示。
GB2312:中国的中文编码表。最多两个字节编码所有字符
GBK:中国的中文编码表升级,融合了更多的中文文字符号。最多两个字节编码
Unicode:国际标准码,融合了目前人类使用的所有字符。为每个字符分配唯一的字符码。所有的文字都用两个字节来表示。
UTF-8:变长的编码方式,可用1-4个字节来表示一个字符。
4、 对象流
对象流
ObjectInputStream
OjbectOutputSteam
作用:用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。
涉及到了序列化和反序列化,这里简要描述一下
序列化过程:将内存中的java对象保存到磁盘中或通过网络传输出去
反序列化:将磁盘文件中的对象还原为内存中的一个java对象
自定义类需要满足如下的要求,方可序列化
1.需要实现接口: Serializable
2.当前类提供一个全局常量: serialVersionUID
3.除了当前Person类需要实现Serializable接口之外,还必须保证其内部所有属性也必须是可序列化的。(默认情况下,基本数据类型可序列化)
5、流写代码的基本步骤
//1.创造文件
//2.创造流
//3.进行读写操作,主要就是read和write的方法的使用
//4.关闭流
补充:第一步和第二步可以合起来,具体用什么创建流,看需要什么样的流,方法的具体参数根据需要写,有些流还有刷新的方法,具体逻辑具体写,大致模板就是这样,开发有很多jar包可以用,更加简便。