FileReader的read()函数读取8212

时间:2014-03-14 18:46:58

标签: encoding binaryfiles filereader

我试图读取文本文件的二进制内容(其中包含不同文本文件的压缩版本)。前两个字符(01111011和00100110)是正确的(通过压缩过程中原始放置的值。

然而,当它到达第三个字符时,它应该是读取10010111(再次,按压缩过程中添加的内容),但它读取10000000010100(又名8212)。有谁知道导致这种差异的原因,或者如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

Java FileReader不应该用于从文件读取二进制数据,因为它一次使用默认编码读取字符(这对于二进制读取来说很可能不是很好) )

相反,使用FileInputStream,它具有读取实际原始字节的方法,而不应用任何编码。