C#读取文件,替换某些字符串并写入另一个新文件的最佳方式是什么?我需要使用8GB或25GB等非常大的文件来执行此操作。
答案 0 :(得分:7)
关于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;
}
查找和替换字符串的标准是什么?
答案 1 :(得分:2)
答案 2 :(得分:1)
是否有不过大的线条?如果是这样,您可以逐行读取文件,在该行上执行替换,然后将该行写出到新文件。由于它是流式传输,因此需要很少的内存。