替换文本文件中的一行而不创建另一个文件

时间:2014-04-08 12:51:22

标签: c# asp.net-mvc-4 file-io

我有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");

0 个答案:

没有答案