【发布时间】:2012-04-20 20:16:41
【问题描述】:
我正在尝试编写一个 XML 文件,但它太大而无法存储在内存中,因此我想将其直接写入磁盘。我曾尝试使用 XmlWriter,但没有使我能够追加到文件末尾的功能,因此我愿意求助于使用常规文件编写器编写 XML 原始文件。
有谁知道任何文件写入类可以让我直接写入磁盘并且可以覆盖文件中的位置?
原因是我需要能够覆盖根元素的关闭,以便我可以附加另一位信息,而且还能够在需要时读取 XML 文件。例如,如果我有以下 XML:
<elements>
<element>
</element>
</elements>
如果我想读这个,我可以,但如果我想写,我必须先删除</elements> 标签,添加另一个元素,然后再次添加结束标签。
感谢您的帮助。
【问题讨论】:
-
很遗憾,XML 的设计方式使得无法追加。
-
文件有多大,你的内存限制是多少?
-
我的内存限制是 .NET 运行时的 1.5GB 限制,而且文件非常大。我还没有弄清楚它会有多大,但预计会有很多 GB。
-
我认为您可以打开文件的流,搜索到最后,构建一个 XmlWriter 并将流传递给 Create...这不起作用吗?
-
我不得不说,xml 似乎不是存储这些数据的最佳方式。是否可以更改架构以使标签名称更短(从而减小其大小)?它需要是 xml 文件而不是数据库中的原因吗?
标签: c# xml c#-4.0 file-io xmlwriter