Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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_File - Fatal编程技术网

Java 为一个文件中的多个文件编制索引

Java 为一个文件中的多个文件编制索引,java,file,Java,File,我有一个从纯文本文件读取的程序。这些文件的数量可能超过500万 当我读它们的时候,我发现它们的名字!名称基本上保存为矩阵的x和y,例如440x300.txt 现在我想把它们放在一个大文件中,并为它们编制索引 我的意思是,我现在想确切地说,例如,440x300.txt保存在文件中,从哪个字节开始,以哪个字节结束 我的第一个想法是创建一个单独的文件并保存这些信息,就像每行包含440x300150883173553一样 但是找到这些信息也需要很多时间 我想知道,如果是一个更好的方式,找出他们的起点和终

我有一个从纯文本文件读取的程序。这些文件的数量可能超过500万

当我读它们的时候,我发现它们的名字!名称基本上保存为矩阵的x和y,例如440x300.txt

现在我想把它们放在一个大文件中,并为它们编制索引

我的意思是,我现在想确切地说,例如,440x300.txt保存在文件中,从哪个字节开始,以哪个字节结束

我的第一个想法是创建一个单独的文件并保存这些信息,就像每行包含440x300150883173553一样

但是找到这些信息也需要很多时间

我想知道,如果是一个更好的方式,找出他们的起点和终点

以某种方式索引文件

请帮忙

顺便说一下,我是用Java编程的


提前感谢您的时间。

如果您只需要阅读这些文件,我会分批归档。e、 g.使用ZIP或Jar格式。这支持文件的命名和索引,您可以使用标准工具构建、更新和检查它们

可以将500万个文件放在一个归档中,但使用少量归档可能更易于管理


顺便说一句:由于文件是文本,压缩它们也会使它们变小。您可以自己创建一个ZIP或JAR,比如1000个。如果您希望能够在文件中直接寻址,那么您有两个选项:

在文件的开头有一个索引,这样您就可以根据x,y查找开始/结束地址 使所有记录的字节大小完全相同,以便可以轻松计算记录在文件中的位置。 应根据以下标准选择正确的选项:

你有矩阵中每个单元格的记录吗? 矩阵值是否发生变化? 矩阵维数是否发生变化? 矩阵中的值是否具有固定的字节长度,即它们是数字还是字符串?
什么不清楚!?问我会回答,因为我不知道遗漏了什么!很抱歉这些文件的数量可以超过500万!这是以兆字节、文档数、千克数为单位的吗?文件数!每个文件可以是10-50KB!不,问题是我想先保存它们,然后在另一个程序中读取它们!我不能每次都把它们存档,想看的时候就把它们提取出来!您可以将它们提取到内存中,而不是单个文件中。这和你的建议没有什么不同。我的建议不好,这就是为什么我在寻找更好的解决方案!这不是个坏主意。这意味着大量的写作和测试。如果你使用的软件已经做到了这一点,你知道a它以前做过,所以这不是一个坏主意b你不必编写/测试它。不,它们的数据大小不一样,这就是为什么我不能做选项二!对于选项一,问题是读取文件的第一行也需要很多时间!500万!还有别的吗?你不必读整个文件就能读索引。使用RandomAccessFile读取文件片段我可以用我知道的跳过该文件,但我如何知道,例如,x和y的信息保存在何处跳过?因为矩阵不完整!我可以用400x400,但不能用400x500