黑马程序员技术交流社区

标题: 字节流与字符流的区别 [打印本页]

作者: DOOR    时间: 2013-12-26 03:00
标题: 字节流与字符流的区别
本帖最后由 DOOR 于 2013-12-26 13:17 编辑

多谢两位
作者: Kyle    时间: 2013-12-26 04:32
字节流就是读写文件的时候,用一个个byte的形式读写,相当于是用最原始的方式在操作文件。
字符流就是在字节流的基础上装饰了一下,用byte读完文件后转换成了相应的我们能看得懂的字符。

所以字节流读写文件更加快,适合用来复制文件之类的大数据的操作。
而字节流慢一些,但操作文本类文件更方便一些,省的我们去转换了。

这么说够通俗不?
作者: 张天军    时间: 2013-12-26 07:55
内存中的表现不管他,知道一次读多少就好啦!
字符:二个字节
字节:一个字节
例:你现在要读一个汉字(以二个字节来存,既:一个字符)的“汉”。
        1.用字符流读:一次读二个字节,那么你就可以完全读取到它,并存到你想存的地方。
        2.用字节流读:一次读一个字节,那么你要读二次你才完全得读取到了这个汉字。不然就读取到了半个(一个汉字二个字节中的一个字节),那你说这半个(一个字节)是什么东西?我想这并不是你想要的吧。

还有一点挺有用的,就是在字符流中你可以一次读取一行(readLine()),这我想对于我们来说是一个不错的方法吧。

希望可以帮助到楼主。。
作者: Softlmis    时间: 2013-12-27 13:27
还是与编码有关。最开始只有字节流,老美那帮哥们儿只有26个字母加上一些特殊字符,用一个字节就可以搞定,但是后来计算机的发展就需要显示更多的文字——比如中文。那么之前的编码表(ASCII)就不适合了,于是就出现了各种各样的字符集比如GB2312等(由于呢,之前就存在编码表,为了不冲突一个汉字就采用2个字节来表示),所以后来才出现了字符流。但是不管字符流怎么变,最终还是要转换成字节流——因为计算机指识别二进制。

简单的说,字符流与字节流最大的区别是在编码上。因此,只要你操作与编码无关的文件就用字节流(比如多媒体图片、音乐、视频、英文字母、数字等);而涉及到非英文的就需要用字符流了。

具体编码知识,请看毕向东老师第21天的视频,讲的比任何人都清楚!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2