如何在Java中将文件读取为无符号字节?

tyr*_*tyr 6 java byte file

如何在Java中读取文件到字节?

重要的是要注意所有字节都需要是正的,即不能使用负范围.

这可以用Java完成,如果可以,怎么做?

我需要能够将文件的内容乘以常量.我假设我可以将字节读入BigInteger然后相乘,但是因为一些字节是负数,所以最终得到12 13 15 -12等并且卡住了.

Jon*_*eet 16

好吧,Java没有无符号字节的概念...... byte类型总是有符号的,值从-128到127(含).但是,这将与其他使用无符号值的系统进行互操作,例如,写入"255"字节的C#代码将生成一个文件,其中相同的值在Java中读作"-1".小心点,你会没事的.

编辑:您可以使用位掩码非常轻松地将int符号的值转换为带符号的字节.例如:

byte b = -1; // Imagine this was read from the file
int i = b & 0xff;
System.out.println(i); // 255
Run Code Online (Sandbox Code Playgroud)

使用所有算法int,然后byte在需要再次写出时再回到它.

您通常使用FileInputStream或可能从文件中读取二进制数据FileChannel.

现在很难知道你还在寻找什么......如果你能在你的问题中提供更多细节,我们可以帮助你.