A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘源 中级黑马   /  2012-8-23 13:34  /  1516 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘源 于 2012-8-23 21:14 编辑

当键盘输入字母加汉字的时候,字节流的读方法是1次1个字节的读。
                                                 字符流的读方法是1次1个字符的读。
请问1个字符占有2个字节空间,那么用字符流的会不会占用跟多的空间呢。比如“ab好”字节流是4个字节。字符流是3个字符,那是不是说就是占用了6个字节呢?
如果是,那读文本是不是用字节流好些?
如果不是,那么字符流,它是怎么区分这一个字符放1个字节表示的a,这1个字符放2个字节表示的会不会变成a这个字节+好的一半变成一个新字啊。
“问题已解决”

1 个回复

倒序浏览
本帖最后由 刘芮铭 于 2012-8-23 15:35 编辑

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


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

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马