Encoding 用于FileReader读取8212的read()函数

Encoding 用于FileReader读取8212的read()函数,encoding,binaryfiles,filereader,Encoding,Binaryfiles,Filereader,我试图读取文本文件的二进制内容(其中包含不同文本文件的压缩版本)。前两个字符(011111011和00100110)是正确的(与压缩过程中原始输入的值一致) 但是,当它到达第三个字符时,它应该读取10010111(同样,根据压缩过程中添加的内容),但是它读取100000000100(又名8212)。有人知道是什么导致了这种差异,或者如何解决它吗?谢谢!Java不应该用于从文件中读取二进制数据,因为它使用默认编码一次读取一个字符(这很可能不适合二进制读取) 相反,使用的读取方法可以读取实际的原始字

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

但是,当它到达第三个字符时,它应该读取10010111(同样,根据压缩过程中添加的内容),但是它读取100000000100(又名8212)。有人知道是什么导致了这种差异,或者如何解决它吗?谢谢!

Java不应该用于从文件中读取二进制数据,因为它使用默认编码一次读取一个字符(这很可能不适合二进制读取)


相反,使用的读取方法可以读取实际的原始字节,而无需应用任何编码。

如果没有任何代码、压缩详细信息,甚至没有您所说的平台/编程语言的详细信息,就很难提供任何智能输入。哦,对不起,我使用的是Java,我的IDE是Eclipse。压缩方法不是真正的rRelevant—重要的是我能够读回我之前放入文本文件的相同二进制数据—在读取前两个字节时可以工作,但由于未知原因第三个字节出错。我认为问题在于我不理解FileReader的read()方法在后台是如何工作的。