将数据存储到网络上的文件的最佳方式是什么,稍后将以编程方式再次读入。该程序的目标平台是Linux(Fedora),但它需要将文件写入Windows(XP)机器什么是将数据写入文件的“最佳”方法,以后再读入。
这需要使用C++,因此会有大量的写/读事件它需要高效,并且数据需要以可以轻松读回的方式写出来。
整个文件可能不会被读回,我需要搜索的文件中的数据的特定块,并阅读该回来了。
将简单的二进制流的作家呢? 我应该如何存储数据 - XML?
还有什么我需要担心的?
UPDATE:要澄清一下,这里有一些答案peterchen的点
请澄清:
*你只追加块,或者你 还需要删除/更新它们?
我只需要追加到文件的末尾,但需要在它
*** are all blocks of the same size?**
没有,数据可能会有所不同,通过它来搜索和检索任意点大小 - 一些将是自由文本评论(如在这里的帖子)其他将是特定的对象类数据(参数集)
*** is it necessary to be a single file?**
否,但期望
*** by which criteria do you need to locate blocks?**
通过数据类型和时间戳。例如,如果我定期写出一组特定的参数,在识别其他数据(如自由文本)时,我想在某个日期/时间查找这些参数的值 - 所以我需要搜索时间I写了最近的那个日期这些参数,并宣读他们回来。
*** must the data be readable for other applications?**
号
*** do you need concurrent access?**
是的,我可能会继续写,因为我读。但一次只能写一个。
*** Amount of data (per block/total) - kilo, mega, giga, tera?**
的数据量会很低每写......从字节数的轿跑车几百个字节 - 总应该看到比几百千字节可能的一个FWE兆而已。 (仍然不确定尚未)
**>如果你需要这一切,滚动你自己是一个挑战,我肯定会
建议使用一个数据库。如果您需要小于,请注明所以我们可以 建议。**
系统,以便不遗憾的是一种选择数据库将在未来复杂化。
谢谢你的澄清,我会建议更多或更少JoãoAugusto所描述的。我giess我cna现在删除我的回复:) – peterchen 2008-10-27 16:11:45