首先我们要知道:
转换流也是一种处理流 转换流的分类:- InputStreamReader
- OutputStreamWriter
那么这个时候转换流中既有关键字Stream,也有关键字Reader(Writer),那么这个时候我们的转换流到底是字节流还是字符流?
- 我们说这个时候就是看后缀 ---- 这个时候后缀是Reader和Writer,那么这个时候就是表示的字符流
提供字节流和字符流之间的转换
- InputStreamReader是将我们的一个字节输入流转换为字符输入流
- InputStreamReader相当于进行了一个解码: 也就是 字节数组 —> 字符串,字符数组
- OutputStreamWriter是将我们的一个字符输出流转换为字节输出流
- OutputStreamWriter相当于进行了一个编码: 也就是 字符串,字符数组 — > 字节数组
我们使用InputStreamReader和OutputStreamWriter进行流的转换的时候都可以指定使用哪种字符集进行转换,系统默认使用的字符集为UTF-8
那么具体的我们使用InputStreamReader和OutputStreamWriter的时候选取字符集的标准是什么?-
我们的InputStreamReader选取字符集的标准为: 看输入文件是使用何种编码进行存储的,我们就选取哪种编码集进行编码
-
这个时候如果我们的输入文件到硬盘中存储使用的字符集编码和我们InputStreamReader使用的字符集不一样,这个时候就可能会出现乱码,但是也有可能不出现乱码:
-
什么时候即使我们选取了不同的字符集,这个时候也不会出现乱码?
如果这个文件中都是以英文字母等ASCII码表中的数据进行存储的,这个时候就不会出现乱码 ---- 因为我们的所有字符集中前128个都是ASCII码的复制
-
-
-
我们的OutputStreamWriter选取字符集的标准为: 看我们想将文件以何种字符集进行存储


![转换流的概述 [Java] 转换流的概述 [Java]](http://www.mshxw.com/aiimages/31/686835.png)
