【问题标题】:How to add line to text with StreamWriter? [duplicate]如何使用 StreamWriter 在文本中添加行? [复制]
【发布时间】:2018-12-23 12:59:34
【问题描述】:

如何使用 StreamWriter 在现有文件中添加一行?我尝试进行研究,但没有什么适合我的需求。

我有这个:

using (StreamWriter writer = new StreamWriter(appdata + @"\FILE.txt"))
{ 
   writer.WriteLine(Environment.NewLine + "newline"); 
}

我不想替换文件中的文本,而是想在其中添加一个新行。此外,如果文件不存在,它应该自己创建。这段代码实际上是我所描述的,但它取代了(例如,如果您单击一次它是 newline,然后再次单击它只是 newline2newline 不存在。它应该看起来像:

newline

        I want this effect

newline2

然后在新行之后添加更多内容。

【问题讨论】:

  • 只是添加行,我推荐File.AppendAllLinesstackoverflow.com/questions/15379136/…
  • 我通过谷歌搜索“c# append to text file”找到了副本,您应该在提问之前花更多时间搜索

标签: c#


【解决方案1】:

使用带有额外bool append参数的构造函数:

using (StreamWriter writer = new StreamWriter(appdata + @"\FILE.txt", true )) { 

【讨论】:

    【解决方案2】:

    constructor overload 中有一个标志,提倡作者在文件末尾附加新内容。您可以传递 true 作为参数来追加新内容,而不是替换整个内容:

    new StreamWriter(appdata + @"\FILE.txt", append: true);
    

    【讨论】:

    • 我添加了“true”,但它仍在删除文件的内容,将其替换为新的
    • 不应该这样,你确定吗?
    • 我使用的确切代码 (StreamWriter writer = new StreamWriter(appdata + @"\important.txt")) { writer.WriteLine(Environment.NewLine + generatedCode.Text, true);每次点击都会更改生成的代码文本,并且文件也会随着点击而更新(在文本更改之后)并且它不起作用..仍然
    • 这不是 Ehsan 和我的提议。您必须将 true 添加到 SteramWriter 构造函数,而不是 WriteLine 调用。
    • @NorteX 请仔细查看sn-p贴出的代码:)
    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 2019-11-26
    • 2016-04-21
    • 1970-01-01
    相关资源
    最近更新 更多