IO流-处理流之——转换流
1.复习
字符编码:字符、字符串、字符数组—> 字节、字节数组(从我们能看懂的—>我们看不懂的)
字符解码:字节、字节数组—>字符、字符串、字符数组(从我们看不懂的—>我们能看懂的)
2.如果希望程序在读取文本文件时,不出现乱码,需要注意什么?
- 解码时使用的字符集必须与当初编码时使用的字符型一致。
- 拓展:解码集必须要与编码集兼容。比如:文件编码使用的是GBK,解码时使用的是UTF-8。如果文件中只有英文字符,此情况可以忽略,因为GBK和UTF-8都向下兼容了ASCII。
3.转换流
- 作用:实现字节与字符之间的转换。
- API:
- InputStreamReader:将一个输入型的字节流转换为输入型的字符流。
- OutputStreamWriter:将一个输入型的字符流转换为输入型的字节流。
4.关于字符集的理解
-
在存储的文件中的字符:
-
ascii:主要用来存储a、b、c等英文字符和1、2、3常用的标点符号,每个字符占用1个字节。
-
iso-8895-1:了解,每个字符占用1个字节,向下兼容ascii。
-
gbk:用来存储中文简体繁体、a、b、c等英文字符和1、2、3常用的标点符号。中文字符使用2个字节存储,向下兼容ascii,英文字符1个字节。
-
utf-8:可以用来存储世界范围内主要语言的所有字符,使用1-4个不等的字节表示一个字符。中文3个字节、英文1个字节。
-
-
在内存中的字符:
一个字符(char)占用2个字节。在内存中使用的字符集称为Unicode字符集(万国码)。