java buffer类_Java ByteBuffer类
我正在从设备读取byte [],并尝试通过ByteBuffer类将其解释为Java中的整数数组,但是我得到了索引超出范围的错误.看这里:
byteBuffer.put(bytes); // put the array of bytes into the byteBuffer
System.out.println("the value I want is " + byteBuffer.getInt(16*4)); // gives me the number I want, but I'd rather deal with an integer array like this:
System.out.println("the value I want is " + byteBuffer.asIntBuffer().get(16)); // index out of bounds? Why??
解决方法:
ByteBuffer类在内部存储缓冲区的几个属性.最重要的是缓冲区中(虚拟“光标”的位置).可以使用byteBuffer.position()读取此位置,并使用byteBuffer.position(123);写入.
The content of the new buffer will start at this buffer’s current position.
这意味着,例如,当您有一个容量为16个元素的ByteBuffer,并且此ByteBuffer的position()为4时,则所得的IntBuffer将仅表示其余的12个元素.
调用byteBuffer.put(bytes)之后,字节缓冲区的位置将前进(取决于字节数组的长度).因此,您正在创建的IntBuffer具有较小的容量.
若要解决此问题,可以在调用byteBuffer.put(bytes)之后调用byteBuffer.rewind()或byteBuffer.position(0). (哪种更合适取决于预期的使用方式)
标签:bytebuffer,java
来源: https://codeday.me/bug/20191029/1957537.html
java buffer类_Java ByteBuffer类相关推荐
- java file 工具_JAVA文件类工具
FileUtil package cn.jiangzeyin.util.file; import org.springframework.util.Assert; import java.io.*; ...
- java filereader类_Java FileReader类
FileReader类从InputStreamReader类继承而来.该类按字符读取流中数据.可以通过以下几种构造方法创建需要的对象. 在给定从中读取数据的 File 的情况下创建一个新 FileRe ...
- java复用类_java复用类
1. toString() 每一个非基本类型都有一个toString()方法:当编译器需要从对象获取一个string时,该对象的toString()方法就会被调用. 示例: class WaterSo ...
- java高级类_Java高级类特性(一)
权限类内同包不同包子类不同包非子类 private √ × × × default √ √ × × protected √ √ √ × public √ √ √ √ 四.super关键字的使用 pac ...
- java 根据类名示例化类_Java即时类| from()方法与示例
java 根据类名示例化类 即时类from()方法 (Instant Class from() method) from() method is available in java.time pack ...
- java 根据类名示例化类_Java即时类| EpochSecond()方法的示例
java 根据类名示例化类 EpochSecond()方法的即时类 (Instant Class ofEpochSecond() method) Syntax: 句法: public static I ...
- java 大数类_Java大数类介绍
java能处理大数的类有两个高精度大整数BigInteger和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.B ...
- java 根据类名示例化类_Java即时类| plusMillis()方法与示例
java 根据类名示例化类 即时类plusMillis()方法 (Instant Class plusMillis() method) plusMillis() method is available ...
- java 根据类名示例化类_Java LocalDateTime类| atOffset()方法与示例
java 根据类名示例化类 LocalDateTime类atOffset()方法 (LocalDateTime Class atOffset() method) atOffset() method i ...
最新文章
- IP修改器的作用以及用途
- JMeter初探-安装与使用
- 哪些贷款是正规的?哪些贷款千万别碰?
- php 判断修改成功,PHP判断文件是否被修改实例
- 计算机网络与通信思维导图,用思维导图描述5G场景
- python如何读取kepsever_python linecache读取过程
- 淘宝京东设计师来看,电商Banner设计策略!
- Android通话记录CallLog简单摘要
- SkinSharp函数文档
- lora三层服务器协议,LoRa以及LoRa包含的几种协议
- 通过更改cmake的源码实现使用代理的下载命令
- 关于在word中安装Mathtype
- word公式编辑器出错及交叉引用问题
- java支付宝第三方支付前置流程
- 怎么在图片中添加表格?
- PTA L1-039 python实现
- 中文版ASAM OpenSCENARIO与OpenDRIVE标准正式发布
- 报表工具不可或缺的数据填报功能
- java 嵌入groovy_嵌入Groovy
- 搜索引擎网站收录提交入口