【发布时间】:2017-01-06 23:38:21
【问题描述】:
我有数百个一个接一个地处理的 XML 文件。我想将其他现有代码应用于文件中的数据。但是,编写该代码是为了期望单个文件或表示单个文件的流。
我看过
How do I concatenate two System.Io.Stream instances into one?
但是,Marc 的答案中提出的StreamEnumerator 要求同时打开所有相关文件的流。考虑到我的文件数量很多,这似乎不是一个好方法。
现有代码像这样使用流:
XmlReader reader = XmlReader.Create(xmlStream);
有没有更好的方法将多个文件合并到一个流中?
【问题讨论】:
-
这个方法好像没问题。我认为您必须在流的开头添加类似“-
”的内容,在添加每个文件时删除“”并添加“”在流的末尾。 -
我试图避免同时打开数百甚至数千个流。
-
该方法包括创建单个 xmlStream 以供现有代码使用。运行一个单独的线程通过读取一个和另一个要合并的文件来在流上写入数据。启动单独的线程后,执行“XmlReader reader = XmlReader.Create(xmlStream);”。
-
@HenkHolterman:我正在尝试先找到一个通用解决方案,然后对其进行调整以无缝结合 XML 数据。