1

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

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

现在我想把它们都放在一个大文件中并索引它们

我的意思是我现在想将例如 440x300.txt 保存在文件中的哪个字节并以哪个字节结束!

我的第一个想法是创建一个单独的文件并将此信息保存在其中,就像每行包含 440 x 300 150883 173553

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

我想知道这是否是找出它们从哪里开始和结束的更好方法!

以某种方式索引文件

请帮忙

顺便说一句,我正在用 Java 编程。

在此先感谢您的时间。

4

2 回答 2

0

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

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

顺便说一句:由于文件是文本,因此压缩它们也会使它们变小。您可以自己尝试创建一个包含 1000 个的 ZIP 或 JAR。

于 2012-04-25T13:33:49.207 回答
0

如果您希望能够在文件中进行直接寻址,那么您有两种选择:

  1. 在文件的开头有一个索引,以便您可以根据 (x, y) 查找开始/结束地址
  2. 使所有记录的大小完全相同(以字节为单位),以便您可以轻松计算文件中记录的位置。

应根据以下标准选择正确的选项:

  1. 您的矩阵中的每个单元格都有记录吗?
  2. 矩阵值会改变吗?
  3. 矩阵维度是否改变?
  4. 矩阵中的值能否具有固定的字节长度(即它们是数字还是字符串)?
于 2012-04-25T13:35:28.140 回答