早期,没有字符流,只有字节流,可以处理任何数据;后来,为了便于操作文字数据,出现了字符流,其实就是早期的字节流和编码表;以前,编码一些字母数据都是用的Asci编码表,但它不能编译汉字,所以出现了GB2312编码表,编码汉字,再后来升级为GBK;后期,各个地方都有自己的文字,为了统一编码全地球语言,出现了Unicode编码表,其中包括的就是全地球语言;但因其要编码汉字,所以至少都要2个字节,16位,可是对于字节数据来说这样会浪费空间,所以将Unicode升级优化为UTF-8编码表,它可以根据字符本身改变存储的字节大小;这样,汉字在GBK中可以识别,在UTF中也可以识别,但编码表中的码值都不同,在GBK中,一个汉字2个字节,而在UTF-8中,一个汉字3个字节,这样就可能出现乱码,所以出现字符流,可在内部融合编码表,由自己指定使用哪种编码表。
若要将字节流转换为字符流,用InputStreamReader,读取文本数据,可操作文本数据中的一部分,在写入时,可以通过OPutputStreamWriter将字符流转为字节流写入文本中。 |