【问题标题】:How To Create New Line In txt File如何在txt文件中创建新行
【发布时间】:2014-02-25 18:14:45
【问题描述】:

在我的网页中,我使用两个文本框在文本文件中添加记录。 但问题是每次插入新记录时,文本文件中的先前记录会自动删除,并且文本文件只包含当前记录。 请帮我解决这个问题。 谢谢。

        <asp:TextBox ID="txt1" runat="server"></asp:TextBox><br />
        <asp:TextBox ID="txt2" runat="server"></asp:TextBox><br />
        <asp:Button ID="btn" runat="server" Text="save" OnClick="btn_Click" />

而我后面的代码是这样的

 protected void btn_Click(object sender, EventArgs e)
    {
        TextWriter tw = new StreamWriter(Server.MapPath("date.txt"));
        tw.WriteLine(txt1.Text + txt2.Text + System.DateTime.Now);
        tw.Close();
    }

【问题讨论】:

  • 不确定你为什么不使用 StreamWriter 来处理所有事情(= 为什么完全依赖 TextWriter?)。另请注意,您没有处理可能引发错误的变量。在处理 StreamWriter 时,始终推荐使用 Using 语句。除此之外,Shai 是对的:您没有附加文件。

标签: asp.net c#-4.0


【解决方案1】:

更新您的 TextWriter 以启用追加,如下所示:

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

【讨论】:

  • 但请注意,文件必须存在才能允许追加不会触发错误。
  • 但现在我收到一条警报,提示此文件已在源代码编辑器之外进行了修改。您要重新加载它吗?我该如何解决?
  • 这个警报完全没问题。您可以选择“是”在 Visual Studio 中重新加载文件。
【解决方案2】:

您需要使用 StreamWriter 的其他重载方法,其最后一个参数为 'Append' 并且必须设置为 'true'。

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

【讨论】:

    【解决方案3】:

    我也这样做过,效果也很好

     protected void btn_Click(object sender, EventArgs e)
        {
            string text = txt1.Text + "" + txt2.Text+""+System.DateTime.Now;
            string path=Server.MapPath("date.txt");            
            File.AppendAllText(path, text + "\n");            
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 2013-11-01
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      相关资源
      最近更新 更多