gpt4 book ai didi

java - 如何在 java 中将 Long 转换为 byte[] 并返回

转载 作者:行者123 更新时间:2023-12-01 04:57:04 25 4
gpt4 key购买 nike

如何在 Java 中将 long 转换为 byte[] 并返回?

我正在尝试将 long 转换为 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();
}

或者包装在一个类中以避免重复创建 ByteBuffer:

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 这样的库。如果您对图书馆有一些奇怪的反对意见,您可能应该考虑 this answer首先是原生java解决方案。我认为我的答案真正的主要目的是您不必担心系统的字节顺序。

关于java - 如何在 java 中将 Long 转换为 byte[] 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com