gpt4 book ai didi

java - 将 ByteBuffer 的内容写入 DataOutput?

转载 作者:行者123 更新时间:2023-11-30 02:10:22 26 4
gpt4 key购买 nike

我需要写入 ByteBuffer 的对象被键入为接口(interface) DataOutput 的实例,而不是类 DataOutputStream(实现 DataOutput)的实例。我需要假设 ByteBuffer.hasArray() 可以返回 false,因此我无权访问任何底层数组。

DataOutput 和 DataOutputStream 都不提供接受 ByteBuffer 的写入方法。然而,将 ByteBuffer 写入 DataOutputStream 可以使用 WritableByteChannel 来完成,WritableByteChannel 是通过将 OutputStream 传递给 Channels 类的实用程序方法来获得的。但 DataOutput 与 OutputStream 类型不兼容,并且不存在类似的实用方法。

SDK 是否提供了任何有效的例程来执行此操作?我宁愿不必创建中间字节数组并使用批量获取操作循环遍历 ByteBuffer(有效地复制 WritableByteChannel 实现的代码)。

最佳答案

我不认为这有什么简单的说法。一个简单的 while 循环就足够了:

DataOutput out = ...
ByteBuffer bb = ...
while (bb.hasRemaining()) {
out.writeByte(bb.get());
}

关于java - 将 ByteBuffer 的内容写入 DataOutput?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50291543/

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