我正在使用 Win7 VS 2012 上的 C#。
我需要通过附加将文本逐行写入文本文件。
StreamWriter ofile = new StreamWriter(@"C:\myPath\my_data_output.txt", true);
ofile.WriteLine(myString + "\t");
但是,输出文件中没有任何内容。
任何帮助,将不胜感激。
我正在使用 Win7 VS 2012 上的 C#。
我需要通过附加将文本逐行写入文本文件。
StreamWriter ofile = new StreamWriter(@"C:\myPath\my_data_output.txt", true);
ofile.WriteLine(myString + "\t");
但是,输出文件中没有任何内容。
任何帮助,将不胜感激。
将您的代码包含在 using 子句中。这将调用StreamWriter
类的 Dispose 方法。该Dispose
方法调用该Flush
方法,该方法写入流。
您的代码如下所示:
using (StreamWriter ofile =
new StreamWriter(@"C:\myPath\my_data_output.txt", true)
{
ofile.WriteLine(myString + "\t");
}
您可以随时调用 flush 方法。
你有几个选择:
StringBuilder sb = new StringBuilder();
while(SOME CONDITION)
{
sb.AppendLine("YOUR STRING");
}
// Set boolean to true to append to the existing file.
using (StreamWriter outfile = new StreamWriter(mydocpath + @"\AllTxtFiles.txt", true))
{
outfile.WriteLine(sb.ToString());
}
//Append new text to an existing file.
// The using statement automatically closes the stream and calls
// IDisposable.Dispose on the stream object.
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines.txt", true))
{
file.WriteLine("Your line");
}
此外,请确保您对尝试写入的目录/文件具有写入权限,并且您正在以管理员身份运行应用程序。
我建议使用 System.IO.File 静态类来处理刷新和处理,你只需要像这样调用 AppendAllText 方法:
System.IO.File.AppendAllText(@"C:\myPath\my_data_output.txt", myString + "\t");
如果您需要多次调用它,那么我的建议是使用 StringBuilder:
StringBuilder sb = new StringBuilder();
while(condition)
{
//Your loop body
sb.AppendText(myString + "\t");
}
File.AppendAllText(@"C:\myPath\my_data_output.txt",sb.ToString());
或者更好的 offile.Close(); 它会关闭流并在您完成后刷新它 MSDN 链接