File io 用于将文本存储为易于访问的行的文件格式

File io 用于将文本存储为易于访问的行的文件格式,file-io,data-structures,file-format,File Io,Data Structures,File Format,我有一个数据结构B-树,它将文本存储为一系列节点,每个节点代表一行文本。我想将文本存储在一个可以与结构保持同步的文件中,而无需在每次编辑时重写整个文件。所以,当我的结构的第n行被更改时,我只能访问和更改文件的第n行,并用结构更新它 有人能给我指出正确的方向吗 原因是我试图存储结构的状态,以便在崩溃后恢复,但不需要不断写入整个文件的开销。可能有很多数据看起来你想要一个 如果您走这条路,请记住所有关系数据库都是建立在B树上的。因此,您可以考虑使用一些嵌入式数据库,如SQLite,而不是.我用来存储文

我有一个数据结构B-树,它将文本存储为一系列节点,每个节点代表一行文本。我想将文本存储在一个可以与结构保持同步的文件中,而无需在每次编辑时重写整个文件。所以,当我的结构的第n行被更改时,我只能访问和更改文件的第n行,并用结构更新它

有人能给我指出正确的方向吗

原因是我试图存储结构的状态,以便在崩溃后恢复,但不需要不断写入整个文件的开销。可能有很多数据

看起来你想要一个


如果您走这条路,请记住所有关系数据库都是建立在B树上的。因此,您可以考虑使用一些嵌入式数据库,如SQLite,而不是.</P>我用来存储文本的数据结构是B-树。我的问题是如何以易于更新的方式将该结构存储在文件中。这就是我建议使用SQLite的原因-它确实可以将B树序列化到磁盘。如果不能使用现有的数据库引擎,可以将B树序列化为[line id、flags、size、data]元组的连续集合。当一行更改时,可以在现有元组中设置deleted标志,并在文件末尾写入一个新元组。内存中的B树保存磁盘上最新元组的偏移量。每天不时地?通过删除删除的元组并更新内存中的B树来压缩文件。