【问题标题】:simple streamwriter not writing [duplicate]简单的streamwriter不写[重复]
【发布时间】:2018-03-29 13:06:01
【问题描述】:

所以不知道为什么这不起作用。我的网页表单上有一个按钮。

protected void btnSave_Click(object sender, EventArgs e)
{
    using (StreamWriter sw = new StreamWriter("C:\\temp\\test.txt"))
    {
        sw.Flush();
        sw.WriteLine(txtDescription.Text);
    }
}

当我在该文本框中输入内容并单击保存按钮时,没有任何反应。不管文件是否提前存在。

不太确定我错过了什么。我曾尝试在写入行之后关闭流写入器,但这似乎也不起作用。我想知道我的表单中是否有需要更改的内容。

【问题讨论】:

  • 尝试交换代码行:sw.Flush(); 最后必须被调用。
  • 好吧,在你写任何东西之前冲洗作家是没有意义的。但不应该伤害任何东西。就它而言,您发布的代码是“好的”。所以无论你的问题是什么,它都与你发布的代码以外的东西有关。如果没有更多上下文,就无法知道您是否只是未能订阅按钮的Click 事件,或者您有某种文件权限问题,或者什么。您应该只设置一个断点并调试代码以查看它的实际作用。如果您需要这里的帮助,您需要提供一个良好的minimal reproducible example 以可靠地重现问题。
  • @Maxim:首先刷新没有用,但也不会在写入后将刷新移动到。关闭编写器(using 在执行离开该代码块时执行此操作)也将刷新编写器。
  • @Peter Duniho。你一说我就知道我做到了。有3个按钮。忘记了那个onclick事件。感谢大家的所有回复。

标签: c# streamwriter


【解决方案1】:

试试这个:

StreamWriter OUTPUT;
string myfile = "C:\\temp\\test.txt";
OUTPUT = File.CreateText(myfile);
OUTPUT.WriteLine(txtDescription.Text);
OUTPUT.Close();

除了使用“File.CreateText”方法外,它与您的代码非常相似。 希望对你有帮助

【讨论】:

    【解决方案2】:

    如果没有异常,此代码工作。这意味着您犯了一个未在此处显示的错误。也许您正在查看错误的驱动器。或者,您没有注意到异常(以某种方式吞下它们)。也许txtDescription.Text 不包含您的期望?!使用调试器单步执行此代码,并在处理 sw 后立即检查该文件。

    虽然我不能告诉你具体的错误,但我可以告诉你看看别处并确保你正确地解释了你所看到的。

    调用File.WriteAllText 更简单,但这并不能解决错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 2014-04-27
      • 2017-08-20
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      相关资源
      最近更新 更多