当前位置: 首页 > 面试题库 >

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

司空昊阳
2023-03-14
问题内容

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

重要的是要注意,所有字节都必须为正,即不能使用负范围。

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

我需要能够将文件的内容乘以一个常数。我以为我可以将字节读取到BigInteger中,然后相乘,但是由于某些字节为负,所以我最终得到12 13 15
-12等并被卡住。


问题答案:

嗯,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

使用进行所有算术运算int,然后byte在需要再次将其写出时返回。

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

现在很难知道您还在寻找什么…如果您可以在问题中提供更多详细信息,我们可能会为您提供更多帮助。



 类似资料:
  • 问题内容: 我可以将文件读取为字节数组 但是当我将其转换为字符串时 它将utf16字节视为ASCII 如何正确转换? 输出: 假 [255 254 91 0 83 0 99 0 114 0 105 0 112 0 116 0 32 0 73 0 110 0 102 0 111 0 93 0 13 0] Script I nfo] 更新: 在测试了两个示例之后,我已经了解了确切的问题。 在Windo

  • 问题内容: 嗨,我想读取N行的txt文件,并将结果放入字符串数组中。 问题答案: 使用和。

  • 问题内容: 我已将文件读入字符串。该文件包含各种名称,每行一个名称。现在的问题是,我希望将这些名称放在String数组中。 为此,我编写了以下代码: 但是我没有得到预期的结果,分割字符串后获得的数组长度为1。这意味着“ fileString”不具有“ \ n”字符,但是文件具有此“ \ n”字符。 那么如何解决这个问题呢? 问题答案: 问题不在于如何分割字符串。那一点是正确的。 您必须查看如何将文

  • 问题内容: 我有一些要解析的大型json文件,我想避免一次将所有数据加载到内存中。我想要一个可以一次返回每个字符的函数/循环。 我发现这个示例可以遍历字符串中的单词,而bufio包中的ScanRunes函数似乎可以一次返回一个字符。我也有bufio提供的功能,大多数情况下都可以正常工作,但是感觉很沉重。 编辑 我比较了3种方法。全部使用循环从bufio.Reader或bufio.Scanner中提

  • 我刚来Java,如果这是个明显的问题,我很抱歉。 我正在尝试逐个字符读取字符串以创建树节点。例如,输入,节点为 我注意到了 我可以用一个循环来获得所有的角色吗?就像 我试过了,但不管用。 我该怎么做? 非常感谢你的帮助。 扫描器读取器=新扫描器(System.in);System.out.println(“将节点输入为大写字母,不带空格,结尾为'/'”);int i=0;char node=rea

  • 我需要在android中以字符串的形式加载一个xml文件,以便将其加载到TBXML xml解析器库并对其进行解析。我现在必须以字符串形式读取文件的实现需要大约2秒,即使对于一些KBs的非常小的xml文件也是如此。在Java/Android中,有没有已知的快速方法可以将文件读取为字符串? 这是我现在拥有的代码: