1

在 JAVA 中,对于 Ints、Booleans 和所有原始数据类型(我相信),方法getByte()是未定义的。

  • 有没有办法让我的 Boolean 和/或 Int 变量与该方法一起使用。
  • 或者你推荐什么数据类型我也改变了变量。
4

2 回答 2

0

您可以使用ByteBuffer 将原语转换为byte[],反之亦然

例子

public static byte[] toByteArray(int value) {
    ByteBuffer bb = ByteBuffer.allocate(4).order(ByteOrder.nativeOrder());
    return bb.putInt(value).array();
}

public static int toInteger(byte[] bytes) {
    ByteBuffer bb = ByteBuffer.wrap(bytes).order(ByteOrder.nativeOrder());
    return bb.getInt();
}
于 2012-10-26T10:32:55.270 回答
0

如果要写入二进制流,通常只需要单个字节。如果这是它的用途,我建议您使用DataOutputStream将 network/big-endian 写入 OutputStream,或者ByteBuffer如果您需要 little-endian,或者您正在写入 NIO 或 NIO2。

如果您需要执行按位操作,例如获取低 8 位,您可以使用掩码 with&或组合 with>>>来获取其他位。使用哪些操作取决于您需要它做什么。

于 2012-10-26T10:37:12.367 回答