作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 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/
我是一名优秀的程序员,十分优秀!