是否可以这样理解: 纯文本文件,比如纯汉字。不用 Reader 而用 inputstream 也能正确读出,是否因为字节流每次都读 1 个字节,只是效率和方便性上相比 字符流 有不足 ? 字节流是不带编码信息的,需要知道原始的字节的字符集,才能转码过来,而reader不用转,2边字符集一致的话,直接就出来了。而图片之类是图片编码,不是字符编码,所以只能用字节流处理 ? 字节流通吃,而字符流是处理具有某种编码格式的字符 ?大家有什么看法和纠错,请指点下
调试欢乐多
也就是说 字节流可以读写所有的文件,而字符流只能读写文本文件。但是能用字符流的时候就不要用字节流,因为字符流的读写效率更高一些。
答:“字节流每次都读 1 个字节”听起来挺别扭的,应该是“以字节为单位进行读写”,性能上当然是字节流效率更高,文件在硬盘上都是二进制,任何机器都是一样:八位构成一个字节,所以字节流读取时很方面。而用字符流读写时,需要有个字符和字节的转化过程,多了这个过程所以效率就下降了。 字节流是不带编码信息的,需要知道原始的字节的字符集,才能转码过来,而reader不用转,2边字符集一致的话,直接就出来了。而图片之类是图片编码,不是字符编码,所以只能用字节流处理 ?
答:啥叫编码方式?就是对字节指定的一系列规则。字节本身怎么会有编码呢? reader是在读取时就已经知道编码方式了,这才能读取,不然不知道编码方式,你叫它在底层如何读取字符呢?鬼知道几个字节以什么样的方式构成的一个字符,况且各种字符集规则各不相同。 字节流通吃,而字符流是处理具有某种编码格式的字符 ?
答:对。总体来说,lz的理解还是基本正确的。