我有一个差不多~215 MB的文件,它的数据格式如下:
<Something>
....
<Document>
</Document>
...
</Something>
现在我想获取Document之间的数据块。我创建了一个正则表达式如下:
@"<DOCUMENT></DOCUMENT>"
如何从大文件中获取大量数据以获得上述数据:
我尝试使用StreamReader,但我不确定什么是最好和最快的方式。
答案 0 :(得分:1)
这是一段简单的代码,可以满足您的需求。
它会:
以下是代码:
bool inDocument = false;
var chunk = new List<string>();
foreach (var line in File.ReadLines(@"D:\Temp\largefile.txt"))
{
switch (line.Trim())
{
case "<Document>":
inDocument = true;
break;
case "</Document>":
inDocument = false;
if (chunk.Count > 0)
{
// Output chunk
chunk.Clear();
}
break;
default:
if (inDocument)
chunk.Add(line);
break;
}
}