码迷,mamicode.com
首页 > 其他好文 > 详细

字节流还是字符流

时间:2016-03-31 14:35:38      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

我的个人主页:http://www.alphaway.org

以下说的流都是文件流。

字节流和字符流的区别

文件在磁盘上的存储是按二进制存储的,也即按字节存储的。
所以字节流就是相当于一个管道连通了应用程序和磁盘上的文件,每次读取都是以字节为单位。
而字符流虽然也相当于一个管道连通了应用程序和磁盘上的文件,但是该管道自带过滤效果,即根据编码,将字节组装成不同的字符。
为什么需要过滤呢,因为你存的时候是根据编码存的,所以读的时候自然也要根据编码读呗。

何时使用字节流字符流

如果你所要读的文件是与编码无关的,比如图像啊,视频啊, 那么就用字节流。 或者虽然你要读的文件与编码有关,但是你读的目的既不是为了显示,又不是为了使用其中的某个字符,而是为了拷贝复制,那么也是可以使用字节流的。
那么什么时候使用字符流就很显然了, 你要读的文件与编码有关,且读的目的是为了显示或者得到其中的某个字符,那么当然使用字符流了。

Java是如何识别有编码的文件的

如果是输入流,创建InputStreamReader对象时,需要传入一个字节流和指定字符编码。InputStreamReader内部根据字节流和字符编码,生成StreamDecoder对象,该对象会根据字符编码将若干个字节解码为一个字符。
如果是输出流,创建OutputStreamWriter对象时,需要传入一个字节流和指定字符编码。OutputStreamWriter内部根据字节流和字符编码,生成StreamEncoder对象,该对象会根据字符编码将一个字符编码成若干个字节。

字节流还是字符流

标签:

原文地址:http://www.cnblogs.com/justPassBy/p/5340832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!