outputstream write()只读int的低八位,要是读一个汉字呢.用字节流怎么读?
发布网友
发布时间:2022-05-01 07:41
我来回答
共1个回答
热心网友
时间:2023-10-09 19:24
汉字是按多字节存储的。根据字符集不同,一个汉字可能有2、3、4个字节。你在读一个汉字文件时,必须了解文件的字符集(或者称编码方式,比如GBK、UTF-8等等)。
java里一般都是用InputStreamReader来读数据的,初始化InputStreamReader时可以设定字符集,这样读出来就直接成了汉字。
可以参考:http://www.2cto.com/kf/201302/190183.html追问这不是我想问的。我知道用outputstream 来读汉字,会产生乱码。我只是想知道用它的write()读汉字时,是只读汉字转化成int(32位)的低八位,还是将低16位分两次读,因为汉字转化成int类型,只有低16位有效。