gpt4 book ai didi

java - 跳到一行并阅读它

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:44 25 4
gpt4 key购买 nike

我必须处理大文件(许多 GB)并且需要快速查找以根据要求检索特定行。

这个想法是维护一个映射:

some_key -> byte_location

字节位置表示行在文件中的起始位置。

编辑:问题有点改变:

我首先使用:

FileInputStream stream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
FileChannel channel = stream.getChannel();

我注意到 FileChannel.position() 不会返回阅读器当前正在阅读的确切位置,因为它是一个“缓冲”阅读器。它读取给定大小的 block (此处为 16k),因此我从 FileChannel 获得的是 16k 的倍数,而不是读者实际阅读的确切位置。

PS:文件是UTF-8

最佳答案

任何不创建 FileInputStream、调用 stream.skip(pos) 然后围绕它创建一个 InputStreamReader 的理由,以及一个 BufferedReader 围绕 InputStreamReader?

关于java - 跳到一行并阅读它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4095541/

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