在 JAVA 中,对于 Ints、Booleans 和所有原始数据类型(我相信),方法getByte()是未定义的。
- 有没有办法让我的 Boolean 和/或 Int 变量与该方法一起使用。
- 或者你推荐什么数据类型我也改变了变量。
在 JAVA 中,对于 Ints、Booleans 和所有原始数据类型(我相信),方法getByte()是未定义的。
您可以使用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();
}
如果要写入二进制流,通常只需要单个字节。如果这是它的用途,我建议您使用DataOutputStream
将 network/big-endian 写入 OutputStream,或者ByteBuffer
如果您需要 little-endian,或者您正在写入 NIO 或 NIO2。
如果您需要执行按位操作,例如获取低 8 位,您可以使用掩码 with&
或组合 with>>>
来获取其他位。使用哪些操作取决于您需要它做什么。