如何用Stream Writer写入文件的开头?

ham*_*med 7 c# stream

我想将我的字符串插入文件的开头.但是在流编写器的开头没有附加功能.那我该怎么做呢?

我的代码是:

string path = Directory.GetCurrentDirectory() + "\\test.txt";
StreamReader sreader = new StreamReader(path);
string str = sreader.ReadToEnd();
sreader.Close();

StreamWriter swriter = new StreamWriter(path, false);

swriter.WriteLine("example text");
swriter.WriteLine(str);
swriter.Close();
Run Code Online (Sandbox Code Playgroud)

但它似乎没有优化.还有其他方法吗?

com*_*ech 9

你快到了:

        string path = Directory.GetCurrentDirectory() + "\\test.txt";
        string str;
        using (StreamReader sreader = new StreamReader(path)) {
            str = sreader.ReadToEnd();
        }

        File.Delete(path);

        using (StreamWriter swriter = new StreamWriter(path, false))
        {
            str = "example text" + Environment.NewLine + str;
            swriter.Write(str);
        }
Run Code Online (Sandbox Code Playgroud)

  • 答案没有考虑,文件大小可能超过虚拟内存空间的可用区域. (5认同)