gpt4 book ai didi

java - 如何使用 NIO 从文件中读取整数而不出现 BufferUnderflowException?

转载 作者:行者123 更新时间:2023-12-01 17:23:02 27 4
gpt4 key购买 nike

这段代码有什么问题? :

ByteBuffer byteBuffer = ByteBuffer.allocate(4);
FileChannel channel = cacheFile.getChannel();
int bytesCount = channel.read(byteBuffer, offset);
int value = byteBuffer.getInt();

最后一行总是抛出 BufferUnderflowException。变量 bytesCount 包含 4。

我在这里想念什么?

最佳答案

在读取之前使用绝对获取或倒回缓冲区:

// option 1
int value = byteBuffer.getInt(0);

// option 2
buffer.rewind();
int value = byteBuffer.getInt();

虽然文档不是很明显(您必须单击链接直到到达 ReadableByteChannel.read() ),但读入缓冲区会更改缓冲区的位置。

关于java - 如何使用 NIO 从文件中读取整数而不出现 BufferUnderflowException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17243652/

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