我想在Java中将一些数据存储到字节数组中.基本上只是数字,每个数字最多可以占用2字节.

我想知道如何将整数转换为2字节长的字节数组,反之亦然.我在谷歌上找到了很多解决方案,但大多数都没有解释代码中发生了什么.有很多变化的东西我真的不太明白,所以我希望能有一个基本的解释.

推荐答案

使用java.nio命名空间中的类,特别是ByteBuffer命名空间中的类.它可以为你做所有的工作.

byte[] arr = { 0x00, 0x01 };
ByteBuffer wrapped = ByteBuffer.wrap(arr); // big-endian by default
short num = wrapped.getShort(); // 1

ByteBuffer dbuf = ByteBuffer.allocate(2);
dbuf.putShort(num);
byte[] bytes = dbuf.array(); // { 0, 1 }

Java相关问答推荐

卡夫卡流列表Serdes:总是空的

使用SaxonJ HE在收件箱中摆脱regex

Selenium Java:无法访问IFRAME内部的元素

具有默认分支的JUnit代码覆盖率切换声明

Java事件系统通用转换为有界通配符

scanner 如何在执行hasNextLine一次后重新读取整个文件?

Quarkus keycloat配置不工作.quarkus. keycloak. policy—enforcer. enable = true在. yaml表示中不工作

@ IdClass with @ Inheritance(策略= InheritanceType. SINGLE_TABLE)

对某一Hyroby控制器禁用@cacheable

所有 case 一起输入时输出错误,而单独放置时输出正确

如何创建一个2d自上而下的移动系统,其中移动,同时持有两个关键是可能的处理?

什么是Java原子属性的正确getter和setter

我正在try 跟踪数组中最大的两个数字

MySQL数据库中未应用具有Spring数据的唯一约束

在添加AdMob时无法为Google Play构建应用程序包:JVM垃圾收集器崩溃和JVM内存耗尽

无法使用Java PreparedStatement在SQLite中的日期之间获取结果

在应用getCellFormula()时,Excel引用中的文件名始终为";[1]";使用Apache POI()

如何在字节数组中反转UTF-8编码?

字符串的Gzip压缩在java11和java17中给出了不同的结果

MapStruct记录到记录的映射不起作用