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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hadexs 中级黑马   /  2013-5-29 11:18  /  1026 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符流与字节流的区别?

4 个回复

倒序浏览
主要区别在于,字节流通过流操作非文字类的操作,如多媒体,Mp3等二进制文件,字符流用于操作如果word.excel.txt含有字符的操作。
回复 使用道具 举报
本帖最后由 w270307032 于 2013-5-29 12:31 编辑

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

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
在毕老师讲课的时候做了一个最简单的分辨方法:是InputStream和OutputStream类的直接子类的都是字节流,是Reader和Writer类的子类的都是字符流。根本上讲,顾名思义,前者每次读取的是一个字节,后者每次读取的是一个字符。建议把毕老师的java基础视频好好学习一下。下载地址:http://edu.csdn.net/main/video.shtml
回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马