gpt4 book ai didi

java - 从 2 字节大端读取 16 位整数

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

我正在尝试跟进此tutorial关于从 srtm-data 读取海拔高度。最后,我必须从文件中读取 2 个字节,这些字节是大端字节序,并且必须将它们转换为 java 中的整数。

File file = new File(filename);
InputStream inputStream = new FileInputStream(file);
long length = file.length();
byte[] bytes = new byte[(int) length];

inputStream.read(bytes);
inputStream.close();

byte[] byteArr = new byte[2];
byteArr[0] = bytes[pos];
byteArr[1] = bytes[pos+1];

int height = ByteBuffer.wrap(byteArr).order(ByteOrder.BIG_ENDIAN).getInt();

问题是我得到了

java.nio.BufferUnderflowException

因为 java 需要更多字节。如何将这两个字节转换为整数?

最佳答案

整数由 4 个字节组成,因此您的 byteArr 需要有 4 个元素,而不是 2 个:

byte[] byteArr = new byte[4];

关于java - 从 2 字节大端读取 16 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545968/

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