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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘真 中级黑马   /  2012-7-30 10:08  /  2075 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘真 于 2012-7-30 22:06 编辑

关于使用字符流还是字节流的区别?哪个更好呢?

4 个回复

倒序浏览
读文本的话用字符流,读文件的话用字节流。。。。。
回复 使用道具 举报
程旦 发表于 2012-7-30 10:14
读文本的话用字符流,读文件的话用字节流。。。。。

刚刚自己找了找答案,字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。而字符只有在内存中才会形成,所以开发当中字节流使用比较广泛。
回复 使用道具 举报
字节流的抽象基类:InputStream的抽象方法abstract int read()读取一个字节,并将其返回。 OutputStream 的抽象方法abstract void write()将一个字节写到指定的位置。字节流可以操作二进制字节很通用,速率也很快。但是字节流不易于我们去直接阅读(我们总不能去读0、1这样的数字吧),于是将我们日常的文字与抽取出来的字节序列一一对应就出现了字符码表。基于字节流产生了字符流。字符流用来操作文本数据就变的方便了。字符流数据可以查找指定的编码表,显示出来的就是我们的文字了。

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
       在所有的流操作里。字节永远是最基础的。任何基于字节的操作都是正确的。无论你是文本文件还是二进制的文件。 如果确认流里面只有可打印的字符,
包括英文的和各种国家的文字,也包括中文,那么可以考虑用字符流。
由于编码不同,多字节的字符可能占用多个字节。比如GBK的汉字就占用2个字节,而UTF-8的汉字就占用3个字节。 所以,字符流是根据指定的编码,
将1个或多个字节转化为java里面的unicode的字符,然后进行操作。字符操作一般使用Writer,Reader等, 字节操作一般都是InputStream, OutputStream
以及各种包装类,比如BufferedInputStream和BufferedOutputStream等。如果你确认你要处理的流是可打印的字符,那么使用字符流会看上去简单一点。
如果不确认,那么用字节流总是不会错的。

希望对你有所帮助!!!!!!!!!{:soso_e100:}

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

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