纯文本文件,比如纯汉字。不用 Reader 而用 inputstream 也能正确读出,是否因为字节流每次都读 1 个字节,只是效率和方便性上相比 字符流 有不足 ?
字节流是不带编码信息的,需要知道原始的字节的字符集,才能转码过来,而reader不用转,2边字符集一致的话,直接就出来了。而图片之类是图片编码,不是字符编码,所以只能用字节流处理 ?
字节流通吃,而字符流是处理具有某种编码格式的字符 ?
大家有什么看法和纠错,请指点下
6 个解决方案
#1
也就是说字节流可用于任何类型的对象,而字符流只能处理字符或者字符串,Unicode字符;
也就是说 字节流可以读写所有的文件,而字符流只能读写文本文件。但是能用字符流的时候就不要用字节流,因为字符流的读写效率更高一些。
也就是说 字节流可以读写所有的文件,而字符流只能读写文本文件。但是能用字符流的时候就不要用字节流,因为字符流的读写效率更高一些。
#2
字节流 读中文 乱码
#3
如果用ajax技术的话,他的编码是utf-8如果服务器是gbk也会出现乱码现象 ?
#4
纯文本文件,比如纯汉字。不用 Reader 而用 inputstream 也能正确读出,是否因为字节流每次都读 1 个字节,只是效率和方便性上相比 字符流 有不足 ?
答:“字节流每次都读 1 个字节”听起来挺别扭的,应该是“以字节为单位进行读写”,性能上当然是字节流效率更高,文件在硬盘上都是二进制,任何机器都是一样:八位构成一个字节,所以字节流读取时很方面。而用字符流读写时,需要有个字符和字节的转化过程,多了这个过程所以效率就下降了。
字节流是不带编码信息的,需要知道原始的字节的字符集,才能转码过来,而reader不用转,2边字符集一致的话,直接就出来了。而图片之类是图片编码,不是字符编码,所以只能用字节流处理 ?
答:啥叫编码方式?就是对字节指定的一系列规则。字节本身怎么会有编码呢? reader是在读取时就已经知道编码方式了,这才能读取,不然不知道编码方式,你叫它在底层如何读取字符呢?鬼知道几个字节以什么样的方式构成的一个字符,况且各种字符集规则各不相同。
字节流通吃,而字符流是处理具有某种编码格式的字符 ?
答:对。
总体来说,lz的理解还是基本正确的。
答:“字节流每次都读 1 个字节”听起来挺别扭的,应该是“以字节为单位进行读写”,性能上当然是字节流效率更高,文件在硬盘上都是二进制,任何机器都是一样:八位构成一个字节,所以字节流读取时很方面。而用字符流读写时,需要有个字符和字节的转化过程,多了这个过程所以效率就下降了。
字节流是不带编码信息的,需要知道原始的字节的字符集,才能转码过来,而reader不用转,2边字符集一致的话,直接就出来了。而图片之类是图片编码,不是字符编码,所以只能用字节流处理 ?
答:啥叫编码方式?就是对字节指定的一系列规则。字节本身怎么会有编码呢? reader是在读取时就已经知道编码方式了,这才能读取,不然不知道编码方式,你叫它在底层如何读取字符呢?鬼知道几个字节以什么样的方式构成的一个字符,况且各种字符集规则各不相同。
字节流通吃,而字符流是处理具有某种编码格式的字符 ?
答:对。
总体来说,lz的理解还是基本正确的。
#5
但貌似我们在操作纯文本文件的时候都喜欢用字符流,方便
#6
UTF-8编码格式下,中文占三个字节,GBK编码格式下,中文占两个字节。在UTF-8格式下,如果你用字节流没有读到三字节的整数倍的话,会出现乱码,在GBK格式下,如果你用字节流没有读到两字节的整数倍的话,会出现乱码
#1
也就是说字节流可用于任何类型的对象,而字符流只能处理字符或者字符串,Unicode字符;
也就是说 字节流可以读写所有的文件,而字符流只能读写文本文件。但是能用字符流的时候就不要用字节流,因为字符流的读写效率更高一些。
也就是说 字节流可以读写所有的文件,而字符流只能读写文本文件。但是能用字符流的时候就不要用字节流,因为字符流的读写效率更高一些。
#2
字节流 读中文 乱码
#3
如果用ajax技术的话,他的编码是utf-8如果服务器是gbk也会出现乱码现象 ?
#4
纯文本文件,比如纯汉字。不用 Reader 而用 inputstream 也能正确读出,是否因为字节流每次都读 1 个字节,只是效率和方便性上相比 字符流 有不足 ?
答:“字节流每次都读 1 个字节”听起来挺别扭的,应该是“以字节为单位进行读写”,性能上当然是字节流效率更高,文件在硬盘上都是二进制,任何机器都是一样:八位构成一个字节,所以字节流读取时很方面。而用字符流读写时,需要有个字符和字节的转化过程,多了这个过程所以效率就下降了。
字节流是不带编码信息的,需要知道原始的字节的字符集,才能转码过来,而reader不用转,2边字符集一致的话,直接就出来了。而图片之类是图片编码,不是字符编码,所以只能用字节流处理 ?
答:啥叫编码方式?就是对字节指定的一系列规则。字节本身怎么会有编码呢? reader是在读取时就已经知道编码方式了,这才能读取,不然不知道编码方式,你叫它在底层如何读取字符呢?鬼知道几个字节以什么样的方式构成的一个字符,况且各种字符集规则各不相同。
字节流通吃,而字符流是处理具有某种编码格式的字符 ?
答:对。
总体来说,lz的理解还是基本正确的。
答:“字节流每次都读 1 个字节”听起来挺别扭的,应该是“以字节为单位进行读写”,性能上当然是字节流效率更高,文件在硬盘上都是二进制,任何机器都是一样:八位构成一个字节,所以字节流读取时很方面。而用字符流读写时,需要有个字符和字节的转化过程,多了这个过程所以效率就下降了。
字节流是不带编码信息的,需要知道原始的字节的字符集,才能转码过来,而reader不用转,2边字符集一致的话,直接就出来了。而图片之类是图片编码,不是字符编码,所以只能用字节流处理 ?
答:啥叫编码方式?就是对字节指定的一系列规则。字节本身怎么会有编码呢? reader是在读取时就已经知道编码方式了,这才能读取,不然不知道编码方式,你叫它在底层如何读取字符呢?鬼知道几个字节以什么样的方式构成的一个字符,况且各种字符集规则各不相同。
字节流通吃,而字符流是处理具有某种编码格式的字符 ?
答:对。
总体来说,lz的理解还是基本正确的。
#5
但貌似我们在操作纯文本文件的时候都喜欢用字符流,方便
#6
UTF-8编码格式下,中文占三个字节,GBK编码格式下,中文占两个字节。在UTF-8格式下,如果你用字节流没有读到三字节的整数倍的话,会出现乱码,在GBK格式下,如果你用字节流没有读到两字节的整数倍的话,会出现乱码