首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ByteBuffer的内容写入DataOutput?

将ByteBuffer的内容写入DataOutput?
EN

Stack Overflow用户
提问于 2018-05-11 11:39:22
回答 1查看 663关注 0票数 2

我需要编写ByteBuffer的对象类型为接口DataOutput的实例,而不是类DataOutputStream (实现DataOutput)的实例。我需要假设ByteBuffer.hasArray()可以返回false,所以我不能访问任何底层数组。

DataOutput和DataOutputStream都不提供接受ByteBuffer的写方法。但是,将ByteBuffer写入DataOutputStream可以通过将OutputStream传递给通道类的实用方法来实现,这是通过WritableByteChannel完成的。但是DataOutput与OutputStream不兼容,也不存在类似的实用方法。

SDK是否提供任何有效的例程来执行此操作?我不希望创建一个中间字节数组,并使用批量get操作遍历ByteBuffer (有效地复制WritableByteChannel实现的代码)。

EN

回答 1

Stack Overflow用户

发布于 2018-05-11 12:00:19

我不相信这件事有什么可说的。一个简单的while循环应该足够了:

代码语言:javascript
复制
DataOutput out = ...
ByteBuffer bb = ...
while (bb.hasRemaining()) {
  out.writeByte(bb.get());
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50291543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档