如何写入现有的txt文件c#
How to write to an existing txt file c#
我已经创建了一些代码来创建一个带有初始文本的 txt 文件,但是当我尝试使用新的消息再次调用该方法时,它不会将它添加到 txt 文件中。下面是我的代码:
string example = "test";
WriteToLgo(example);
public static void WriteToLog(String inputtext)
{
string location= @"C:\Users\";
string NameOfFile = "test.txt";
string fileName= String.Format("{0:yyyy-MM-dd}__{1}", DateTime.Now, NameOfFile);
string path= Path.Combine(location, fileName);
using (StreamWriter sr= File.CreateText(path))
{
sr.WriteLine(inputtext);
}
}
如果我第二次尝试调用该方法,则不会添加新消息。任何帮助将不胜感激。
您不应使用 File.CreateText
,而应使用此 StreamWriter
重载:
//using append = true
using (StreamWriter sr = new StreamWriter(path, true))
{
sr.WriteLine(inputtext);
}
见MSDN
File.CreateText每次只创建一个新文件,覆盖其中的任何内容。不附加到现有文件。
您应该使用 File.AppendText(...) 打开现有文件以附加内容,或者使用基本 StreamWriter class 打开它并带有附加选项
类似于:
using (StreamWriter sr = File.AppendText(path))
{
sr.WriteLine(inputtext);
}
如果你使用基础 StreamWriter class 而不是 File.AppendText 你可以像 StreamWriter sr = new StreamWriter(path, true);但是,您必须在打开文件进行追加之前检查该文件是否存在。可能会根据您的情况推荐 File.AppendText。
我已经创建了一些代码来创建一个带有初始文本的 txt 文件,但是当我尝试使用新的消息再次调用该方法时,它不会将它添加到 txt 文件中。下面是我的代码:
string example = "test";
WriteToLgo(example);
public static void WriteToLog(String inputtext)
{
string location= @"C:\Users\";
string NameOfFile = "test.txt";
string fileName= String.Format("{0:yyyy-MM-dd}__{1}", DateTime.Now, NameOfFile);
string path= Path.Combine(location, fileName);
using (StreamWriter sr= File.CreateText(path))
{
sr.WriteLine(inputtext);
}
}
如果我第二次尝试调用该方法,则不会添加新消息。任何帮助将不胜感激。
您不应使用 File.CreateText
,而应使用此 StreamWriter
重载:
//using append = true
using (StreamWriter sr = new StreamWriter(path, true))
{
sr.WriteLine(inputtext);
}
见MSDN
File.CreateText每次只创建一个新文件,覆盖其中的任何内容。不附加到现有文件。
您应该使用 File.AppendText(...) 打开现有文件以附加内容,或者使用基本 StreamWriter class 打开它并带有附加选项
类似于:
using (StreamWriter sr = File.AppendText(path))
{
sr.WriteLine(inputtext);
}
如果你使用基础 StreamWriter class 而不是 File.AppendText 你可以像 StreamWriter sr = new StreamWriter(path, true);但是,您必须在打开文件进行追加之前检查该文件是否存在。可能会根据您的情况推荐 File.AppendText。