如何在txt文件中添加新行

Posted

技术标签:

【中文标题】如何在txt文件中添加新行【英文标题】:How to add new line into txt file 【发布时间】:2012-01-05 12:47:06 【问题描述】:

我想在我的 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

我该怎么做?谢谢!

【问题讨论】:

【参考方案1】:

你可以很容易地做到这一点

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

如果你需要换行符

File.AppendAllText("date.txt", 
                   DateTime.Now.ToString() + Environment.NewLine);

无论如何,如果您需要您的代码,请执行以下操作:

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

第二个参数告诉追加到文件。 检查here StreamWriter 语法。

【讨论】:

如果您使用的是 c# 4(或更新版本)编译器,您可以输入 new StreamWriter("date.txt", append:true) 以使意图更清晰。【参考方案2】:

没有换行:

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

然后在OK后换行:

File.AppendAllText("file.txt", string.Format("01", "OK", Environment.NewLine));

【讨论】:

请使用Environment.Newline 而不是"\r\n" - 并非每个系统都同意换行符的工作方式:en.wikipedia.org/wiki/Newline#Representations【参考方案3】:

为什么不使用一个方法调用来做到这一点:

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

它将为您执行换行,并允许您根据需要一次插入多行。

【讨论】:

我更喜欢这个而不是接受的答案;你不需要指定新行【参考方案4】:
var Line = textBox1.Text + "," + textBox2.Text;

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

【讨论】:

【参考方案5】:

尝试使用以下代码在 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);
            
        

【讨论】:

以上是关于如何在txt文件中添加新行的主要内容,如果未能解决你的问题,请参考以下文章

Android保存到file.txt追加

使用以下vbscript在邮件正文中添加新行

如何在 Python 3 中写入 .txt 文件

如果不存在,则创建一个 .txt 文件,如果它确实追加一个新行

如何逐行读取txt文件

在matlab中将新行写入文本文件