文本文件中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
方法本身管理。