Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java对内存中的文本文件执行二进制搜索操作?_Java - Fatal编程技术网

如何使用java对内存中的文本文件执行二进制搜索操作?

如何使用java对内存中的文本文件执行二进制搜索操作?,java,Java,在将文本文件加载到内存后,如何在java中对其执行二进制搜索操作? 我尝试过使用RandomAccessFile,但它需要很多时间,因为它不会将文件加载到内存中。除此之外还有其他选择吗? 我的文件大小为30 MB您可以使用MappedByteBuffer将文件映射到内存中 请看这里: 请显示到目前为止您编写的代码。如果没有更清晰的描述,我们真的帮不了你。所有的线都是一样长的吗?什么是搜索键-整行?有多少行?你试过把所有文件读入字符串[]吗?我想这个问题需要更多的上下文。为了运行二进制搜索,您必须

在将文本文件加载到内存后,如何在java中对其执行二进制搜索操作? 我尝试过使用RandomAccessFile,但它需要很多时间,因为它不会将文件加载到内存中。除此之外还有其他选择吗?
我的文件大小为30 MB

您可以使用MappedByteBuffer将文件映射到内存中

请看这里:

请显示到目前为止您编写的代码。如果没有更清晰的描述,我们真的帮不了你。所有的线都是一样长的吗?什么是搜索键-整行?有多少行?你试过把所有文件读入字符串[]吗?我想这个问题需要更多的上下文。为了运行二进制搜索,您必须在已排序的列表上运行。这可能意味着您的文件是二进制文件或包含结构化文本(否则,您如何知道跳转到哪里?)。你能告诉我们更多关于你正在研究的结构类型吗?原则上,无论您指定的访问类型如何,操作系统都会将部分文件加载到内存中。但是您的二进制查找访问模式可能会违反IO缓存算法。首先,尝试顺序搜索。如果它更容易和更快,考虑坚持它。