当前位置: 首页 > 面试题库 >

如何将Long转换为byte []并返回Java

孙佐
2023-03-14
问题内容

如何在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之间进行转换的函数。