我正在byte[16]
从 JDBCResultSet
中读取一个 16 字节数组 ( ) rs.getBytes("id")
,现在我需要将它转换为两个 long 值。我怎样才能做到这一点?
这是我尝试过的代码,但我可能没有ByteBuffer
正确使用。
byte[] bytes = rs.getBytes("id");
System.out.println("bytes: "+bytes.length); // prints "bytes: 16"
ByteBuffer buffer = ByteBuffer.allocate(16);
buffer = buffer.put(bytes);
// throws an java.nio.BufferUnderflowException
long leastSignificant = buffer.getLong();
long mostSignificant = buffer.getLong();
我使用以下方法将字节数组存储到数据库中:
byte[] bytes = ByteBuffer.allocate(16)
.putLong(leastSignificant)
.putLong(mostSignificant).array();