如何将无符号字节转换为有符号字节

kin*_*ffy 0 java unsigned signed byte type-conversion

我正在尝试将文件中的无符号字节转换为java中的有符号字节。这是我当前从 java 文件中读取无符号字节的安排:

        ByteArrayOutputStream output = new ByteArrayOutputStream();
        for (String string : fileKeyString) {
            output.write(Integer.valueOf(string).byteValue());
        }
        return output.toByteArray();
Run Code Online (Sandbox Code Playgroud)

注意:我必须使用 Java 8,而 fileKeyString 是从文件读取时创建的字符串数组。变量字符串保存无符号字节。它输出所需的字节数组。

在将其放入 output.write 并由 .byteValue() 求值之前,我如何准确地将其从无符号字节转换为有符号字节?

我对字节没有太多经验,因此非常感谢任何帮助。

谢谢。

kin*_*ffy 5

找到了!如果超过 128,只需减去 256。

if (byte >= 128) { byte -= 256; }
Run Code Online (Sandbox Code Playgroud)