如何在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解决方案考虑此答案。我认为我的答案真正要解决的主要问题是,你不必自己担心系统的字节序。
问题内容: 懒惰的程序员警报。:) Cassandra将列值存储为字节(Java示例)。指定LongType比较器会将这些字节比较为long。我希望将long的值转换为Cassandra友好的byte []。怎么样?我戳了一会儿。我想你们可以帮助我更快。 编辑: 亚历山大和以利的答案都同意这种逆向转变。谢谢! 问题答案: 这是从Java 6中剪切和粘贴的 这是您的情况的修改
问题内容: 我有一个表示RGB图像的整数数组,想将其转换为字节数组并将其保存到文件中。 在Java中将整数数组转换为字节数组的最佳方法是什么? 问题答案: 正如Brian所说,您需要确定需要什么样的转换。 您是否要将其保存为“正常”图像文件(jpg,png等)? 如果是这样,您可能应该使用Java Image I / O API。 如果要以“原始”格式保存,则必须指定写入字节的顺序,然后使用和NI
我想使用反应性编程将我的excel文件存储到我的数据库中。在非反应式中,这很容易做到,但我不能在反应式中做类似的事情,我应该写什么来存储它到我的mongo数据库中?
我试图检索值从数据库显示在视图但我得到这个崩溃就在这里 致命异常:主进程:com。实例艾哈迈德。卡伦塔尔,PID:15975 com。谷歌。火力基地。数据库DatabaseException:未能转换java类型的值。在com上使用长字符串。谷歌。Androidgms。内部的zzear。zzb(未知来源)在com。谷歌。Androidgms。内部的zzear。zza(未知来源)在com上。谷歌。A
Code A可以将长值转换为日期值,就像2018.01.10一样 > 我希望得到日期时间值 ,如 2018.01.10 23:11,我该如何使用 Kotlin? 我希望将当前时间转换为长值,我该如何使用Kotlin? 谢谢! 代码A
问题内容: 怎么转换成?如果应该这样做 那怎么算呢? 以及如何转换为? 问题答案: 缓冲区长度为frameCapacity * bytesPerFrame。以下是可以在NSData和AVAudioPCMBuffer之间进行转换的函数。