如何使用c#中的StreamWriter将文本写入文件?

如何使用c#中的StreamWriter将文本写入文件?,c#,text,io,streamwriter,C#,Text,Io,Streamwriter,我需要一个方法将我的执行堆栈打印到一个文件中,但它不打印任何内容…不知道为什么..我没有收到任何错误。我的file.txt是空的…请帮助 public void printStackToFile(Stack myStack, String fileName) { StreamWriter sw = new StreamWriter(fileName, true); sw.Write(myStack.ToString());

我需要一个方法将我的执行堆栈打印到一个文件中,但它不打印任何内容…不知道为什么..我没有收到任何错误。我的file.txt是空的…请帮助

public void printStackToFile(Stack myStack, String fileName)
        {
            StreamWriter sw = new StreamWriter(fileName, true);
            sw.Write(myStack.ToString());
            sw.Close();

        }
行myStack.ToString()永远不会返回堆栈中的对象

如果要将文件上的对象打印到文件中,请尝试以下操作:

public void printStackToFile(Stack myStack, String fileName)
{
    StreamWriter sw = new StreamWriter(fileName, true);

    foreach (object obj in myStack)
        sw.Write(obj.ToString());

    sw.Close();
}
当您使用ToString时,放入堆栈的对象必须返回其值(“int”将起作用),但如果它是一个类,例如,您可能必须实现对ToString()的重写


“刷新”不是必需的。

您没有正确关闭流写入程序。尝试
sw.Flush()
使用(StreamWriter…
仍不打印。尝试使用Flush…尝试使用此sw.Write(“测试数据”);而不是堆栈,如果这样做有效,则堆栈为空。我尝试使用sw.Write(“测试数据”)而且它不会打印…顺便说一句…我的堆栈不是空的…我在运行我的程序之前检查了堆栈是否是空的。您是否验证了
myStack.ToString()
返回的内容?public string ToString(){string stringtoreern=“Execution stack:\n”;for(int i=this.stackStmt.Count()-1;i>=0;i--){stringToReturn=stringToReturn+“\t位置”+i+:“+this.stackStmt.ElementAt(i).toString()+“\n”}返回stringToReturn;}在你的问题中发布代码,然后浏览我在评论中发布的问题,并尝试回答尽可能多的问题。@user3671805在提问时,提供所有相关信息非常重要。“Stack”是你创建的类,而不是“标准类”,这一点非常重要。