我有8 GB的巨大文本文件,需要替换其中的一些特定行。我找到了线条,也取而代之。但问题是我正在重写每行文件。只想更换一行而不重写完整文件。 文本文件包含逐行写入的Base64字符串。我正在逐行读取文件,每当发现匹配时只想替换当前行(不创建另一个文本文件或重写文件中的所有文本)。任何帮助将不胜感激。使用以下代码。每行都在读取和写入,但我只替换一个文件。请参阅下面的代码。
string originalFile = "Original.txt";
string tempFile = "temp.txt";
string binayString = "base64string";
using (StreamWriter file2 = new StreamWriter(System.IO.File.Open(tempFile, FileMode.Create, FileAccess.Write)))
{
StreamReader sr = new StreamReader(originalFile);
String line = string.Empty;
while ((line = sr.ReadLine()) != null)
{
if (line.StartsWith("Somestartpoint")
{
file2.WriteLine("Somestartpoint" + binayString);
continue;
}
file2.WriteLine(line);
}
sr.Dispose();
}
System.IO.File.Replace(tempFile, originalFile, "backup.txt");
System.IO.File.Delete(checkPath + "backup.txt");