将getByte()与原始数据一起使用

时间:2012-10-26 10:31:31

标签: java methods boolean int primitive-types

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

  • 有没有办法让我的布尔和/或Int变量可以使用 方法。
  • 或者您建议我更改变量的数据类型。

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

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

如果需要执行逐位操作(例如获取低8位),则可以使用&的掩码或>>>的某种组合来获取其他位。要使用哪些操作取决于您的需要。