Possible Duplicate:
How to read a large (1 GB) txt file in .NET?
What is the optimal way in C# to read an file, replace some strings and write in another new file? I need to do this with very large files like 8GB or 25GB.
Possible Duplicate:
How to read a large (1 GB) txt file in .NET?
What is the optimal way in C# to read an file, replace some strings and write in another new file? I need to do this with very large files like 8GB or 25GB.
There isn't much you can optimize about the I/O, most of the optimization should be on the string comparison to determine if the string should be replaced or not, basically you should do this
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;
}
What is your criteria to find and replace a string?
Are there lines that are not overly large? If so, you can read in the file line by line, do the replace on that line, and then write out that line to the new file. Since it's streamed very little memory is required.
© 2022 - 2024 — McMap. All rights reserved.