第7次文章:IO流中的重点流
- 2019 年 10 月 8 日
- 筆記
这周的内容是对前面已经学过的一些重要IO流进行一个框架的总结,没有放相关的代码。这几个流的用法都比较简单,正在学Java的小伙伴儿,学到此处的时候,一看就懂!
一、节点流
节点流属于最小单元,有字节流和字符流两种类别
1、字节流
读取:InputStream
写出:OutputStream
字节流可以处理一切内容。
2、字符流
读取:Reader
写出:Writer
字符流只能处理纯文本文件,所谓的纯文本文件也就是人类能够看懂的文件。
二、处理流
处理流主要是缓冲流,提高IO流在读取和写出时候的性能,避免产生错误。主要的缓冲流有两个,读取缓冲流BufferedInputStream,写出缓冲流BufferedOutputStream。在使用缓冲流的时候十分简单,用法就是:缓冲流(节点流)。
三、转换流
在对文件进行操作的时候,很多情况下会产生乱码。在计算机中,乱码的产生只有两个原因。第一:文件在读取和写出的时候没有使用统一的编码和解码集,例如Java平台中的jbk编码解码集,UTF-8编码集等等。当读取或者写出操作使用的是两个不一样的编码解码集的时候,就会对结果产生乱码的影响。第二:在读取写出操作的时候,文件的长度有损失,即信息不完整。当操作过程中,出现字节信息丢失的问题时,同样会导致最终的结果出现乱码的情况。
转换流的使用,就是在对文件操作的时候,指定相同的编码解码集,在同样的集合下,对文件进行相应的处理。主要的转换流有:解码(InputStreamReader),编码(OutputStreamWriter)。在使用的时候需要注意一点,首先需要知道目标文件自身的编码集,这样才能够在对其操作时,使用与文件相对应的编码解码集进行处理,从而避免出现乱码的情况。如果在对文件的编码集不清楚的情况下就进行相关操作,那么将会很容易产生乱码。