文本文件中C#中的StreamWriter限制

我有一个包含100行的数组列表。 当我尝试将其导出到文本文件(txt)时,输出只有84行,它停在第84行的中间。 当我查看文件大小时,它显示了非常清晰的4.00KB,好像对流编写器有某种限制。 我尝试使用不同的参数等,但它一直在发生。

这是代码:

FileStream fs = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(fs); ArrayList chartList = GetChart(maintNode); foreach (var line in chartList) { sw.WriteLine(line); } fs.Close(); Console.WriteLine("Done"); 

谢谢您的帮助!

您需要调用StreamWriter.Flush或将StreamWriter.AutoFlush设置为true。 也就是说,如果你使用法令,一切都应该正常。

 using(StreamWriter sw = new StreamWriter(fs)) { ArrayList chartList = GetChart(maintNode); foreach (var line in chartList) { sw.WriteLine(line); } } 

使用语句调用Dispose将缓冲区刷新到FileStream并关闭文件流。 所以你不需要手动关闭它。

然后我推荐List over ArrayList 。 不应使用ArrayList ,它不是类型安全的,如果您使用的是.Net2.0或更高版本,则应该避免使用。

还要考虑使用File.WriteAllLines方法,这样就不需要这么多行代码了。 一切都由WriteAllLines方法本身管理。