C# 中读取文件、替换一些字符串并写入另一个新文件的最佳方式是什么?我需要对 8GB 或 25GB 等非常大的文件执行此操作。
问问题
10836 次
3 回答
11
关于 I/O 没有太多可以优化的地方,大部分优化应该是在字符串比较上,以确定字符串是否应该被替换,基本上你应该这样做
protected void ReplaceFile(string FilePath, string NewFilePath)
{
using (StreamReader vReader = new StreamReader(FilePath))
{
using (StreamWriter vWriter = new StreamWriter(NewFilePath))
{
int vLineNumber = 0;
while (!vReader.EndOfStream)
{
string vLine = vReader.ReadLine();
vWriter.WriteLine(ReplaceLine(vLine, vLineNumber++));
}
}
}
}
protected string ReplaceLine(string Line, int LineNumber )
{
//Do your string replacement and
//return either the original string or the modified one
return Line;
}
您查找和替换字符串的标准是什么?
于 2012-04-13T20:12:45.583 回答
2
于 2012-04-13T19:29:03.273 回答
1
是否有不太大的线条?如果是这样,您可以逐行读取文件,对该行进行替换,然后将该行写出到新文件中。由于它是流式传输的,因此只需要很少的内存。
于 2012-04-13T18:51:37.940 回答