IO、流操作基本规律
流操作基本规律:
最痛苦的就是流对象太多,不知道该用哪一个
通过两个明确来完成:
1、明确源和目的
源:输入流 InputStream Reader
目的:输出流 OutputStream Writer
2、操作的数据是否是纯文本
是:字符流
不是:字节流 (比如图片、音频之类的)
3、当体系明确后,再明确要使用哪个具体的对象
通过设备来进行区分
源设备:内存,硬盘,键盘
目的设备:内存,硬盘、控制台
需求:
1、 将一个文本文件中的数据存储到另一个文件中,复制文件
源:因为是源,所以选择读取流、InputStream Reader
是不是操作文本文件、是! 选择Reader, 这样体系就明确了,
接下来要明确该体系中的哪个对象。
是否需要提高效率? 是,加入Reader体系中的缓冲区:BufferedReader
FileReader fr = new FileReader("a.txt");
Buffered bufr = new BufferedReader(fr);
源设备:硬盘上的一个文件 Reader体系中,可以操作文件的对象是:FileReader
目的: OutputStream Writer 是否是纯文本? 是:Writer
明确设备:硬盘,一个文件,那么Writer体系中可以操作文件的是: FileWriter
是否需要提高效率? 是,加入Writer体系中的缓冲区:BufferedWriter
FileWriter fw = new FileWriter("b.txt");
BufferedWriter bufw = new BufferedWriter(fw);
练习需求:将一个图片文件中的数据存储到另一个文件中,复制文件,按以上格式完成三个明确
规律2: . 需求,将键盘录入的数据保存到一个文件中,这个问题中,源和目的都存在
那么开始分析: 源 InputStream Reader 是不是纯文本?