写在前面
闲聊结束,上才艺。
今日所学
4.2ObjectInputStream
对象输入流:用来读取对象,即反序列化。
ObjectInputStream和ObjectOutputStream属于包装流,用于对节点流进行功能包装/扩展
在创建包装流,需要传入要操作的节点流对象
在反序列化时。会将流中的serialVersionUID与本地相应实体对象/类的serialVersionUID进行比较
如果相同就认为版本一致,则可以进行反序列化
如果不同则会出现序列化版本不一致的异常
四、字符流
1.简介:
Reader是字符输入流的顶层父类,常用子类
FileReader
BufferedReader
InputStreamReader
Writer是字符输出流的顶层父类,常用子类
FileWriter
BufferedWriter/PrintWriter
OutputStreamWriter
2.文件输入输出流
2.1FileReader
文件字符输入流:以字符为单位,从文件中读取数据
2.2FileWriter
文件字符输出流:以字符为单位,将数据写到文件中
FileReader\FileWriter的用法与FileInputStream,FileOutputStream类似,前者以字符位单位,后者以字节为单位
int data = reader.read();
每次读取一个字符返回值int类型的字符值
3.缓冲输入输出流
缓冲输入输出流属于包装类,为字符流添加缓冲的功能
当读取或写出数据时,先从缓冲区读取,减少对磁盘的IO操作,提高效率。
3.1BufferedReader
缓冲字符输入法:为字符输入流添加缓冲
3.2BufferedWriter
缓冲字符输出流:为字符输出流添加缓冲
3.3PrintWriter
打印流,功能更强,操作更简单
System.out 标准输出流,默认为显示器
System.in 标准输入流,默认为键盘