gpt4 book ai didi

Java Bytebuffer只能顺序读取?

转载 作者:行者123 更新时间:2023-12-02 04:49:09 24 4
gpt4 key购买 nike

我正在将文件映射到内存并使用 java 的 ByteBuffer 读回它。事实证明,这是读取大文件的一种非常快速的方法。但是,我只能顺序读取这些值。这意味着一旦我读取它们,缓冲区指针就会移动到下一个字节。因此,如果我想多次使用一个值,我必须将其存储到另一个变量中:

int a = buffer.getInt()

我注意到,与仅读取字节相比,这种将一 block 内存复制到另一 block 内存的方法需要很长时间(尤其是对于非常大的文件)。有没有办法可以重新读取这些字节而不是复制它们?

最佳答案

只需使用position(int)在ByteBuffer中查找即可。然后您就可以从任何地方阅读。

ByteBuffer buffer=ByteBuffer.allocate(1000);
byte[] data=new byte[10];
buffer.position(100);
//read 10 from postion 100
buffer.get(data);

关于Java Bytebuffer只能顺序读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56457259/

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