字符编码
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();
}
}