将数据存储到网络上的文件的最佳方式是什么,稍后将以编程方式再次读取该文件。该程序的目标平台是 Linux (Fedora),但需要将文件写入 Windows (XP) 机器
这需要在 C++ 中,会有大量的写入/读取事件,因此它需要高效,并且需要以可以轻松读回的方式写出数据。
整个文件可能没有被读回,我需要在文件中搜索特定的数据块并将其读回。
简单的二进制流编写器可以吗?我应该如何存储数据 - XML?
还有什么我需要担心的吗?
更新:为了澄清,这里有一些彼得陈观点的答案
请说清楚:
* 你只附加块,还是你还需要删除/更新它们?
我只需要追加到文件的末尾,但需要搜索并从其中的任何点检索
*** are all blocks of the same size?**
不,数据的大小会有所不同 - 有些是自由文本评论(如此处的帖子),有些是特定的对象状数据(参数集)
*** is it necessary to be a single file?**
不,但可取
*** by which criteria do you need to locate blocks?**
按数据类型和时间戳。例如,如果我定期写出一组特定的参数,在其他数据中,比如自由文本,我想在某个日期/时间找到这些参数的值 - 所以我需要搜索我的时间写出最接近该日期的那些参数并将它们读回。
*** must the data be readable for other applications?**
不。
*** do you need concurrent access?**
是的,我可能会在阅读时继续写作。但一次只能写一篇。
*** Amount of data (per block / total) - kilo, mega, giga, tera?**
每次写入的数据量会很低......从几个字节到几百个字节 - 总共应该看到不超过几百千字节,可能是 fwe 兆字节。(目前还不确定)
**> 如果你需要所有这些,自己动手将是一个挑战,我肯定会的
建议使用数据库。如果您需要的更少,请指定以便我们推荐。**
数据库会使系统过于复杂,因此不幸的是,这不是一种选择。