javascript - 使用 Javascript 二进制搜索文本文件中的一行

标签 javascript file-io binary-search

有没有办法在 Javascript 中对文本文件中的特定键进行基于磁盘的二进制搜索?文本文件太大,无法加载到内存中,但按键值排序。特别是我正在寻找一种模仿 Perl 的 Search::Dict 的方法。 Javascript 中的功能。

例如如果我有一个文件 foo.txt:

a 1
b 10
c 5
z 4

look(c,foo.txt) 应该通过二进制搜索而不是线性遍历文件来返回行“c 5”。

最佳答案

我不知道 Javascript,但是如果你可以进行随机搜索,你可以通过搜索到当前 block 的中点(以字节为单位)进行二进制搜索,然后向前移动直到你使用换行符,只要您“知道”您的 key 是针对换行符的。

不过,在某些情况下,您需要向后移动,因此您可以在了解文件缓冲的情况下进行搜索,这样后退步骤就不会很昂贵。

如果您不处理 ASCII 文件,我想这可能会有点麻烦。

关于javascript - 使用 Javascript 二进制搜索文本文件中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544292/

相关文章:

r - 并行化并加速 R 代码以读取多个文件

ios - 加快将大量 JSON 数据写入磁盘的速度

java - 我不想输入列表的大小,但我也想在列表中动态添加数字

java - 在java中删除数据文件的部分内容

javascript - Bxslider字幕动画

javascript - Ember 集成: Trigger click event on root element

javascript - React Native 底部选项卡导航不起作用

c - C 中指针的二分查找

c++ - 通过修改二进制搜索算法来改进它,使其在大量单词(单词列表)中搜索单词时工作得更快

javascript - 如果滚动到达某个元素,则 CSS 固定导航栏应用新样式