本帖最后由 w270307032 于 2013-5-29 12:31 编辑
所有文件(包括字符数据)的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.
按照以上原理,只要有字节流就可以处理各种文件了,为什么还要有字符流呢?
计算机处理字符数据时,会将读到的字节信号,先进行查指定的 charset (也就是我们说的编码表),然后找到对应关系后以字符信号的形式输出,而其它数据就不用转化。
这样处理起来较麻烦,于是就将编码表和字节流进行了封装,就成了字节流。
可以这样简单理解:字符流=字节流+编码表
所以理论上说,字节流也可以用来处理字符数据,只是查表这个过程要你再进行操作,比如通过流转换技术来处理下。1字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;
2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。 |