今晚加班,所以今晚文章更新晚了点。
我们平时在用流的时候是不是有的时候很纠结,不知道要用哪一个,流对象那么多。
整理一下,来看看流操作的基本规律。
通过三个明确来完成
1,明确源和目的:
源: 输入流 >>>>> InputStream Reader
目的:输入流 >>>>> OutputStream Writer
2,操作的数据是否是纯文本:
是:字符流
否:字节流
3,当体系明确后,再明确要使用哪个具体的对象
通过设备来进行区分:
源设备:内存,硬盘,键盘
目的设备:内存,硬盘,控制台
来个例子看看
将一个文本文件中的数据存储到另一个文件中,复制文件。
源:读取,InputStream Reader
是不是操作文本文件
是:Reader
这样体系就明确了。
接下来要明确使用该体系中的哪个对象。
明确设备:硬盘上的一个文件
Reader体系中可以操作文件的对象是:Reader
是否需要提高效率:是
加入Reader体系中缓冲区,BufferedReader
目的:OutputStream Writer
是否是纯文本
是,Writer
设备:硬盘上的一个文件
Writer体系中可以操作文件的对象FileWriter
是否需要提高效率:是
加入Writer体系中缓冲区,BufferedWriter
如果不是文本文件也同样的道理.
补充一个知识点
一般我们在存数据的时候可能会乱码,原因就是编码的问题。所以可以通过转换流来解决这个问题。
InputStreamReader OutputStreamWriter
注:
UTF-8:一个字符3个字节
GBK:一个字符2个字节