如何在Java中将Long转换为byte[]并返回java
2022-08-31 06:26:26
如何在Java中将a转换为a并返回?long
byte[]
我正在尝试将a转换为a,以便我能够通过TCP连接发送。另一方面,我想把它转换回.long
byte[]
byte[]
byte[]
double
如何在Java中将a转换为a并返回?long
byte[]
我正在尝试将a转换为a,以便我能够通过TCP连接发送。另一方面,我想把它转换回.long
byte[]
byte[]
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();
}
或者包装在一个类中以避免重复创建字节缓冲区:
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();
}
}
由于这越来越受欢迎,我只想提一下,我认为在绝大多数情况下使用像番石榴这样的图书馆更好。如果你对库有一些奇怪的反对意见,你可能应该首先考虑这个答案来看待原生Java解决方案。我认为我的答案真正要说的是,你不必担心系统的字节序。