------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
字符编码
1,字符流的出现为了方便操作字符
2,更重要的是加入了编码转换
3,通过子类转换来完成
InputStreamReader
OutputStreamWriter
4,在两个对象进行构造的时候可以加入字符集
编码表的由来
1,计算机只能识别二进制数据,早期由来是电信号。
2,为了方便应用计算机,让它可以识别各个国家的文字
3,就将各个国家的文字用数字来表示,并一一对应,形成一张表
4,这就是编码表
常见的编码表:
1,ASCII:美国标准信息交换码
用一个字节的7位可以表示
2,ISO8859-1:拉丁码表。欧洲码表
用一个字节的8位表示
3,GB2312:中国的中文编码表
4,GBK:中国的中文编码表升级,融合了更多的中文文字符号
5,Unicode:国际标准码,融合了多种文字
所有文字都用两个字节来表示,java语言使用的就是Unicode
6,UTF-8:最多用三个字节来表示一个字符
7,...
转换流的编码应用
1,可以将字符以指定编码格式存储
2,可以对文本数据指定编码格式来解读
3,指定编码表的动作由构造函数完成
- import java.io.*;
- class EncodeStream
- {
- public static void main(String[] args)throws IOException
- {
- // writeText();
- readText();
- }
- public static void readText()throws IOException
- {
- InputStreamReader isr = new InputStreamReader(new FileInputStream("a2-gbk.txt"),"GBK");
- char[] buf = new char[10];
- int len = isr.read(buf);
- String str = new String(buf,0,len);
- System.out.println(str);
- isr.close();
- }
- public static void writeText()throws IOException
- {
- OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("a2-gbk.txt"));
- osw.write("你好");
- osw.close();
- }
- }