如何将Long转换为byte []并返回Java
如何在Java中将longa
转换为a byte[]
并返回?
我正在尝试将a转换long
为a,byte[]
以便能够byte[]
通过TCP连接发送。另一方面,我想byte[]
将其转换为double
。
回答:
public byte[] longToBytes(long x) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
buffer.putLong(x);
return buffer.array();
}
public long bytesToLong(byte[] bytes) {
ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
buffer.put(bytes);
buffer.flip();//need flip
return buffer.getLong();
}
或包装在一个类中,以避免重复创建ByteBuffers
:
public class ByteUtils { private static ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
public static byte[] longToBytes(long x) {
buffer.putLong(0, x);
return buffer.array();
}
public static long bytesToLong(byte[] bytes) {
buffer.put(bytes, 0, bytes.length);
buffer.flip();//need flip
return buffer.getLong();
}
}
由于它变得如此流行,我只想提一提,我认为在大多数情况下,最好使用像Guava
这样的库。而且,如果你对库有一些奇怪的反对意见,则可能应该首先针对本机Java解决方案考虑此答案。我认为我的答案真正要解决的主要问题是,你不必自己担心系统的字节序。
以上是 如何将Long转换为byte []并返回Java 的全部内容, 来源链接: utcz.com/qa/409958.html