如何清除文本文件中的所有行并写入新字符串?

时间:2015-09-22 10:55:31

标签: c# asp.net

我编写此代码但不清楚文本文件:

        File.WriteAllBytes(string.Concat(Server.MapPath("/"), "\\Engine\\TextFile1.txt"), new byte[0]);          
        sr = new StreamWriter(string.Concat(Server.MapPath("/"), "\\Engine\\TextFile1.txt"));
        foreach (var item in txtHtmlCode.Content.Split('\n'))
        {
            sr.Write(item + "\n");
        }
        sr.Close();

我将此代码用于清除文件但不执行此操作:

        StreamWriter sr = new StreamWriter(string.Concat(Server.MapPath("/"), "\\Engine\\TextFile1.txt"));
        sr.Flush();
        sr.Close();

我想要清除文本文件并在此文件中写入新字符串。我该怎么办? 如何覆盖文本文件?

6 个答案:

答案 0 :(得分:6)

我只想使用System.IO.File.WriteAllText

String path = System.IO.Path.Combine(Server.MapPath("/"), "Engine", "TextFile1.txt");
System.IO.File.WriteAllText (path, txtHtmlCode.Content);

如果文件存在,则覆盖该文件,否则将创建该文件。

答案 1 :(得分:4)

如果您想重写文件:

  File.WriteAllText(@"C:\MyFile.txt", "MyText");

如果您想编辑该文件,即更改行:

  var target = File
    .ReadLines(@"C:\MyFile.txt")
    .Select(line => line) //TODO: put your actual edit here
    .ToList(); // In order to prevent access problems

  File.WriteAllLines(@"C:\MyFile.txt", target);

答案 2 :(得分:2)

无法从现有文件中删除内容(这是我所知道的所有文件系统中存在的限制,与.NET无关)。您将不得不再次创建该文件,覆盖旧文件。

答案 3 :(得分:2)

File.WriteAllText(filepath, String.Empty);

在这里你需要提供你的文件路径,我们将用空格替换所有内容,之后你可以每次在文件中写入新文本。

答案 4 :(得分:2)

要清除并写入文本文件,请使用此代码。

string path="Your file Path";
File.WriteAllText(path, String.Empty);
TextWriter tw = new StreamWriter(path, true);
tw.WriteLine("Your String!");
tw.Close();

要覆盖文本文件,请使用此代码。

string path="Your file Path";
var myFile = File.Create(path);
myFile.Close();

答案 5 :(得分:1)

IRandomAccessStream stream = await storageFile.OpenAsync(FileAccessMode.ReadWrite, StorageOpenOptions.AllowOnlyReaders);

stream.Size = 0; // clear the existing content

using (StreamWriter streamWriter = new StreamWriter(stream.AsStreamForWrite()))
{                        
    foreach (...)
    {
        await streamWriter.WriteLineAsync(...)                           
    }
    await streamWriter.FlushAsync(); 
}

stream.Dispose();