IO
学习视频:[https://www.bilibili.com/video/BV15B4y1u7Rn/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=d1d91449e9f0e57df8e45ae76336092a]
-
文件
保存数据的地方
文件流:文件在程序中是以流的形式来操作的。
常用的文件操作
创建
目录的操作和文件删除
P.S.delete只能删除空目录或文件IO流原理及流的分类
字符流效率更高,但是在操作二进制文件时,用字节流可以达到无损读取。字符流用于文本文件。
Inputstream,outputstream,reader,writer都是抽象类,需要实例化才能使用。
流VS文件
Inputstream
1.FileInputstream:文件输入流
2.BufferedInputstream:缓冲字节输入流
3.ObjectInputstream:对象字节输入流
Outputstream
FileOutputstream
在写文件的时候,如果文件不存在会创建文件。
文件拷贝
思路:
- 读取指定路径的文件
- 写入目标文件
注意:一边读一边写
文件字符流
节点流和处理流
处理流:
BufferedReader可以封装节点流,只要是Reader的一个子类就可以了!
节点流和处理流的区别与联系
对象处理流
不仅要保存值,还要保存值和数据类型。保存值和数据类型称为序列化,将保存在文件的数据(值和数据类型)重新恢复成对象,就是反序列化。
serializable:可序列化的
p.s.
5)注释:
标准输入输出流
/*
1.System.in是 public final static InputStream in = null;
2. System.in 的编译类型是InputStream
3. System.in 的运行类型是BufferedInputStream
4. 标准输入:键盘
*/
System.out.println(System.in.getClass());
/*
1. System.out是public final static PrintStream out = null;
2. System.out编译类型是PrintStream
3. System.out运行类型也是PrintStream
4. 表示标准输出:显示器
*/
System.out.println(System.out.getClass());
转换流—InputStreamReader/OutputStreamWriter
没有指定文件的编码方式,出现乱码
InputStreamReader、OutputStreamWriter可以指定编码方式
打印流
Properties
由配置文件引出。