将数据存储到网络上的文件的最佳方式是什么,稍后将再次以编程方式读入。该程序的目标平台是 Linux (Fedora),但需要将文件写出到 Windows (XP) 机器

这需要在 C++ 中,会有大量的写入/读取事件,因此它需要高效,并且数据需要以可以轻松读回的方式写出。

整个文件可能不会被读回,我需要在文件中搜索特定的数据块并将其读回。

简单的二进制流写入器会做吗?
我应该如何存储数据 - XML?

还有什么我需要担心的吗?

更新: 为了澄清,这里有一些 peterchen 的 观点的答案



我只需要追加到文件的末尾,但是将需要搜索文件并从文件中的任何点进行检索



不,数据的大小会有所不同 - 有些将是自由文本评论(如此处的帖子),其他将是特定对象的数据(参数集)



不,但可取



按数据类型和时间戳。例如,如果我定期写出一组特定的参数,在其他数据中,比如自由文本,我想在某个日期/时间找到这些参数的值 - 所以我需要搜索我的时间写出最接近那个日期的参数,然后再读回。



不。



是的,我可能会在阅读的同时继续写作。但一次只能写一个。



每次写入的数据量会很低……从几个字节到一个 coupe 百字节 ​​- 总数应该不会超过几百千字节,可能只有几兆字节。 (目前还不确定)

**> 如果你需要所有这些,滚动你自己的将是一个挑战,我肯定会



数据库会使系统过于复杂,因此不幸的是,这不是一个选择。

最佳答案

你的问题太笼统了。我会首先定义我的需求,然后定义文件的记录结构,然后使用文本表示来保存它。看看 Eric Stone Raymond's data metaformatJSON ,也许还有 CSVXML 。 peterchen 的所有观点似乎都是相关的。

关于c++ - 什么是将数据写入文件的 'best' 方法,稍后再读入。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/239876/

10-10 12:40
查看更多