阅读大文件的最佳方法

时间:2018-03-05 08:06:06

标签: c# xml io

我目前正在开发一个读写XML文件的程序。虽然这是一项简单的任务,但我对未来的问题很关注。

我的代码从XML中读取流数据,并检查每个元素<x>,直到找到符合条件的元素,这非常快,因为该文件当前有大约100 <x>个元素,但是当添加更多元素时,此任务将会慢得多,特别是如果符合条件的元素是非常大的文件中的最后一个元素。

我应该采取什么方法来尽量减少这种影响? 我正在考虑将文件分成较小的文件(每个文件最多包含1000个元素),同时从各种文件中读取文件。这是一个正确的方法吗?

我正在用C#编码,以防它与特定语言的方法相关。

2 个答案:

答案 0 :(得分:2)

您应该使用.Net的可用XML API之一。哪一个取决于XML文件的大小。在this question中,XDocument(Linq-to-Xml)和XmlReader之间进行了讨论。总结一下:如果您的文件适合内存,请使用XDocument。如果没有,请使用XmlReader

答案 1 :(得分:0)

在您的情况下,这听起来像是一个批处理过程。也许这个链接:https://www.codeproject.com/Articles/1155341/Batch-Processing-Patterns-with-Taskling会帮助你。我从未在C#中这样做,但在Java中,这是解决此类任务的好方法。希望它会对你有所帮助。