黑马程序员技术交流社区
标题:
IO问题
[打印本页]
作者:
freeboyhrk
时间:
2013-4-1 14:59
标题:
IO问题
本帖最后由 freeboyhrk 于 2013-4-1 15:40 编辑
io中为什么要分为字符流和字节流?
作者:
袁梦希
时间:
2013-4-1 15:22
楼主你好 如果是这样的问题对于初学者来说,那我会认真解答,如果对资深学者来说没有必要提问。
我也不说废话,先说说两者的概念,
什么是字符流, 为什么使用字符流
用字节流可以读写字符数据, 但是需要人工编码解码, 非常麻烦.
使用字符流可以自动编码解码, 读取的时候直接读到字符, 写出的时候直接写出字符.
通常在需要读写字符数据的时候都是使用字符流来操作的.
像一些文本文件都可以用字符流来读取。像MP3或者拷贝图片或者媒体文件,都可以用字节流来读写,
因为字符流的底层还是字节流,只不过java给字符流做了封装,让我们用字符流读写文件比较方便。
作者:
张玉保
时间:
2013-4-1 15:26
我觉的这个就是要提高效率的,纯文本要是用字节流是不是很慢呢?就好像读取流与写入流,不用缓冲区一样可以,但是使用了缓冲区后效率提高了。
下面的内容是看了毕老师对IO的总结:
字符流的由来:因为文件的编码不同,而有了对字符进行高效操作的字符流对象。
原理:就是基于字节流读取字节时,去查指定的码表。
字节流和符的区别:
1,字节流读取的时候,到一个就返回一个字节。字符流使用了字节流读到一个或者多个 字节(中文对应的字节数是两个,在UTF-8码表中是三个字节)时,先去查指定的编 码表,将查到的字符返回。字符流只能处理字符数据。
2.字节流可以处理所有类型数据,如图片,mp3,avi等。
结论:只要处理纯文本数据,优先考虑使用字符流,除此之外都用字节流。
作者:
绿树林
时间:
2013-4-1 15:26
楼主是来卖萌的
作者:
HM刘俊
时间:
2013-4-1 15:40
就好比你外出办事为什么要分走路和坐车一样的道理。
两种不同的方式,办事的效率等各有不同。。。
作者:
郑才熹
时间:
2013-4-1 16:01
字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2