java - 在java中,如何将Long转换为字节 [] 和返回

  显示原文与译文双语对照的内容
64 2

如何将long转换为字节 [] 并返回到Java中?我尝试将long转换为字节 [],这样我就能够通过tcp连接发送字节 [] 。另一方面,我希望采用字节 [] 并将它的转换为双重字节。任何提示都会感激。

时间:原作者:0个回答

137 4
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解决方案。我认为我的回答真正的主要内容是你不必担心自己的系统的结束性。

原作者:
...