java io字符流和字节流的区别

 我来答
qrspace
推荐于2018-03-02 · TA获得超过2046个赞
知道小有建树答主
回答量:1038
采纳率:93%
帮助的人:398万
展开全部
Java字符流是处理字符(Char)对象用的,字节流是处理字节(Byte)对象用的。处理的目标对象不同,处理方法也就不一样了。

字符流处理的基本单位是字符(Java中的字符是16位的),输入流以Reader为基础,输出流以Writer为基础;
字节流的基本单位是字节(Java中的字节是8位的),输入流以 InputStream为基础,输出流以 OutputStream为基础;

字符流在输入时可以按字符读取,也可以按行读取,会去掉回车换行,常用于读取字符数据;
而字节流按字节读取,不作任何处理,常用于读取二进制数据。

Java中的字符在内部都是使用Unicode进行表示的,因此,要正确读取字符数据,需要知道字符的编码字符集,字符流提供编码字符集的指定,如果不指定使用系统默认的方式对字符数据进行编码转换,这个编码字符集不正确,会造成读进来的地字符出现乱码。

字节流虽然是读取二进制数据用的,但也可以读取字符文件,按字节进行处理,读进来之后可以根据编码字符集进行转换,也可以变成字符串。
知春细雨蒙
推荐于2017-12-16 · 混迹网络滴知春细雨蒙,知无不答
知春细雨蒙
采纳数:3039 获赞数:63038

向TA提问 私信TA
展开全部
一句话概括:字节流是由字节组成的,字符流是由字符组成的.Java里字符由两个字节组成.

扩展:字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LOL曹小宝
2016-03-10 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:46.7万
展开全部
用处区别:字符流操作文字的较多,字节流操作其他流媒体的较多,
处理单位区别:字符流处理的单元为2个字节的Unicode字符,而字节流处理单元为1个字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蛋蛋he笨笨
2016-02-29 · TA获得超过2538个赞
知道小有建树答主
回答量:612
采纳率:80%
帮助的人:230万
展开全部
字符由字节组成,字符读起来比较快,适合解析文本文件,但是像音频,视频等最好用字节流处理,不然会使文件不完整
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2016-02-28 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
字符是读取一个字符 比较适合用来读取一个字符 而字节 读取一个字节 读出来可能是乱码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式