黑马程序员技术交流社区

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

作者: 刘源    时间: 2012-8-23 13:34
标题: 字节流和字符流的read区别
本帖最后由 刘源 于 2012-8-23 21:14 编辑

当键盘输入字母加汉字的时候,字节流的读方法是1次1个字节的读。
                                                 字符流的读方法是1次1个字符的读。
请问1个字符占有2个字节空间,那么用字符流的会不会占用跟多的空间呢。比如“ab好”字节流是4个字节。字符流是3个字符,那是不是说就是占用了6个字节呢?
如果是,那读文本是不是用字节流好些?
如果不是,那么字符流,它是怎么区分这一个字符放1个字节表示的a,这1个字符放2个字节表示的会不会变成a这个字节+好的一半变成一个新字啊。
“问题已解决”
作者: 刘芮铭    时间: 2012-8-23 15:27
本帖最后由 刘芮铭 于 2012-8-23 15:35 编辑

字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串。
字节流处理单元为1个字节, 操作字节和字节数组。
所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,
所以它对多国语言支持性比较好!如果是 音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.


一个英文字母占用一个字节!一个中文占用2个字节!
在JAVA中:char是有固定长度2个字节的!也就是说char可以表示一个字母或者一个汉字!
                     byte是固定长度,一个字节的!也就是说byte可以表示一个字母但是不能表示一个汉字





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