如何在txt文件中添加新行

142

我想在我的date.txt文件中添加新的带文本的行,但是应用程序没有将其添加到现有的date.txt文件中,而是创建了一个新的date.txt文件。

TextWriter tw = new StreamWriter("date.txt");

// write a line of text to the file
tw.WriteLine(DateTime.Now);

// close the stream
tw.Close();
我想打开txt文件,添加一些文本,然后关闭它,在稍后点击某个东西之后再次打开date.txt,添加文本,再次关闭它。
所以我可以得到:
按钮被按下:txt被打开 -> 添加当前时间,然后关闭它。按下另一个按钮,txt被打开 -> 在同一行中添加文本“OK”或“NOT OK”,然后再次关闭它。
因此,我的txt文件将如下所示:
2011-11-24 10:00:00 OK
2011-11-25 11:00:00 NOT OK

我该怎么做?谢谢!

5个回答

298

你可以轻松地使用以下方法实现

File.AppendAllText("date.txt", DateTime.Now.ToString());
如果您需要换行
File.AppendAllText("date.txt", 
                   DateTime.Now.ToString() + Environment.NewLine);

如果你需要让你的代码做到这一点:

TextWriter tw = new StreamWriter("date.txt", true);

第二个参数会告诉StreamWriter以追加的方式写入文件。
这里查看StreamWriter的语法。


12
如果您正在使用C#4(或更新版本)编译器,您可以输入new StreamWriter("date.txt", append:true)以使意图更加清晰。 - kͩeͣmͮpͥ ͩ

25

没有换行符:

File.AppendAllText("file.txt", DateTime.Now.ToString());

然后在“确定”之后换行:

File.AppendAllText("file.txt", string.Format("{0}{1}", "OK", Environment.NewLine));

13
请使用Environment.Newline而不是"\r\n" - 不同的系统对换行符号的处理方式并不相同:https://en.wikipedia.org/wiki/Newline#Representations - kͩeͣmͮpͥ ͩ

13

为什么不用一个方法调用来完成呢:

File.AppendAllLines("file.txt", new[] { DateTime.Now.ToString() });

如果需要,这将为您执行换行操作,并允许您一次插入多行。


1
我更喜欢这个答案而不是被接受的答案;你不需要指定新行。 - twoleggedhorse

3
var Line = textBox1.Text + "," + textBox2.Text;

File.AppendAllText(@"C:\Documents\m2.txt", Line + Environment.NewLine);

1
尝试使用以下代码在Unity3D中创建并写入文本文件的内容。
void CreateLog() {
        string timestamp = DateTime.Now.ToString("dd-mm-yyyy_hh-mm-ss");
        PlayerPrefs.SetString("timestamp", timestamp);
        string path = Application.persistentDataPath + "/" + "log_" + timestamp + ".txt";
        // This text is added only once to the file.
        if (!File.Exists(path)) {
            // Create a file to write to.
            using (StreamWriter sw = File.CreateText(path))
            {
                sw.WriteLine(DateTime.Now.ToString() + ": " + "App initialised");
            }   
        } else {
            // This text is always added, making the file longer over time
            // if it is not deleted.
            using (StreamWriter sw = File.AppendText(path)) {
                sw.WriteLine(DateTime.Now.ToString() + ": " + "App initialised");
            }   
        }

        // Open the file to read from.
        using (StreamReader sr = File.OpenText(path)) {
            string line = "";
            while ((line = sr.ReadLine()) != null)
            {
                Debug.Log(line);
            }
        }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接