问题

这是从ByteBuffer获取字节的推荐方法

ByteBuffer bb =..

byte[] b = new byte[bb.remaining()]

bb.get(b, 0, b.length);

#1 热门回答(88 赞)

取决于你想做什么。

如果你想要的是检索剩余的字节(位置和限制之间),那么你所拥有的将是有效的。你也可以这样做:

ByteBuffer bb =..

byte[] b = new byte[bb.remaining()]

bb.get(b);

这相当于ByteBufferjavadocs。

#2 热门回答(16 赞)

请注意,bb.array()不支持字节缓冲区位置,如果你正在处理的bytebuffer是某个其他缓冲区的片段,则可能更糟糕。

byte[] test = "Hello World".getBytes("Latin1");

ByteBuffer b1 = ByteBuffer.wrap(test);

byte[] hello = new byte[6];

b1.get(hello); // "Hello "

ByteBuffer b2 = b1.slice(); // position = 0, string = "World"

byte[] tooLong = b2.array(); // Will NOT be "World", but will be "Hello World".

byte[] world = new byte[5];

b2.get(world); // world = "World"

这可能不是你打算做的。

如果你真的不想复制字节数组,可以使用字节缓冲区的arrayOffset()remaining(),但这只适用于应用程序支持所需字节缓冲区的索引长度的情况。

#3 热门回答(3 赞)

final ByteBuffer buffer;

if (buffer.hasArray()) {

final byte[] array = buffer.array();

final int arrayOffset = buffer.arrayOffset();

return Arrays.copyOfRange(array, arrayOffset + buffer.position(),

arrayOffset + buffer.limit());

}

// do something else

java获取字节数组_从java中的ByteBuffer获取字节数组相关推荐

  1. jq获取页面高度_使用jquery中height()方法获取各种高度

    $(window).height(); //浏览器当前窗口可视区域高度 $(document).height(); //浏览器当前窗口文档的高度 $(document.body).height();/ ...

  2. java 笛卡尔积 数组_在JS中笛卡尔积算法与多重数组笛卡尔积(详细教程)

    这篇文章主要介绍了JS笛卡尔积算法与多重数组笛卡尔积实现方法,结合实例形式分析了javascript根据对象或数组生成笛卡尔积的相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS笛卡尔积算法与多重 ...

  3. ibatis查询结果返回数组_在ibatis中传递和返回自定义数组对象,在java中传递和返回oracle...

    您必须从TypeHandler的自定义实例开始.我们更喜欢实现更简单的TypeHandlerCallback,但在这种情况下,我们需要访问底层的Connection. public class Arr ...

  4. javascript字典中添加数组_在javascript中合并两个字典数组

    您可以使用 Array#map方法生成新数组(假设两个数组的顺序相同). var lat = [{key:"2017-09-20T11:51:32.000Z", value:50. ...

  5. java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at

    [http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...

  6. java打印星型_初识java java入门知识 基础知识 打印各种星型图形 源代码

    今天给大家带来的是初级Java基础部分的知识:包括初识Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...

  7. java文件复制速度_【Java】Java代码拷贝文件的速度

    Java代码拷贝文件的速度究竟有多快? 前言 最近学习Java到了流处理,其中有种流叫FileInputStream和FileOutputStream,简单来说,就是操作文件的,老师给我们示范了一个非 ...

  8. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  9. java字符串转换成字节数组_将Java字符串转换为字节数组

    我有一个要加密的字节数组,然后转换为字符串,以便可以传输. 当我收到字符串时,我必须将字符串转换回字节数组,以便可以对其进行解密. 我检查了接收到的字符串是否与发送的字符串(包括长度)匹配,但是当我使 ...

最新文章

  1. 打印零与奇偶数(多线程)
  2. 【FPGA】流水线学习笔记
  3. Python中re(正则表达式)模块函数学习
  4. 基于libsvm的中文文本分类原型
  5. Ardino基础教程 21_LCD1602液晶屏
  6. 【NLP】NLP文本风格迁移,秒变金庸风
  7. 同步代码块解决线程安全
  8. Luogu P2101 命运石之门的选择(分治+搜索)
  9. python 字符串比较忽略大小写的方法_python实现忽略大小写对字符串列表排序的方法...
  10. Python入门--字符串的连接和替换,replace,join
  11. JVM笔记7:类加载器
  12. tcp欢动窗口机制_Linux网络编程面试--滑动窗口的实现机制
  13. 【百度seo建议】网站快速被蜘蛛抓取方法
  14. 苹果iOS App上架流程,非iOS开发人员上架教程
  15. 网络层IP协议—ipv4
  16. Python邮件附件保存
  17. 如何正确使用物业安全巡检系统
  18. 阿里云云效:代码提交使用
  19. vue 打包后 components 组件 样式丢失问题
  20. 中国石油大学继续教育计算机一,2017年中国石油大学继续教育计算机网络基础答案【多版本整合】(10页)-原创力文档...

热门文章

  1. 票据打印机-蓝牙的开关
  2. 拉斯维加斯利用人工智能技术打造智慧城市
  3. 车险到底怎么买最划算
  4. 电脑技术(1)服务器常见故障代码
  5. UOS统信系统桌面变黑,什么都没有
  6. vue动画过渡 javascript钩子函数详解
  7. MapReduce实验——英语单词频次统计实验
  8. 【捡起C++】复合类型
  9. adbmonkey的使用
  10. 水表读数图解_水表怎么看?水表读数怎么看?水表怎么看图解?