懒惰程序员警惕。 :)
Cassandra 将列值存储为字节 (Java示例)。指定一个长类型比较器将这些字节作为 long 进行比较。我想要将 long 的值转换为 Cassandra 友好的 byte[]。如何?我闲逛了一会。我想你们可以更快地帮助我。
EDIT:
亚历山大和伊莱的回答都同意这个逆向变换。谢谢!
我会把长写到字节数组输出流包裹在一个数据输出流然后检索原始字节,尽管这总是以大端字节顺序为您提供数据(最重要的字节在前):
public static byte[] getBytes(Long val)
throws IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeLong(val);
return baos.toByteArray();
}
如果您希望能够指定字节顺序,可以使用字节缓冲区 class:
public static byte[] getBytes(Long val)
{
ByteBuffer buf = ByteBuffer.allocate(8);
buf.order(ByteOrder.BIG_ENDIAN);
buf.putLong(val);
return buf.array();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)