[英]StreamWriter limit in C# in text file
我有一个包含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
statment,一切都应该正常工作。
using(StreamWriter sw = new StreamWriter(fs))
{
ArrayList chartList = GetChart(maintNode);
foreach (var line in chartList)
{
sw.WriteLine(line);
}
}
使用语句调用Dispose
将缓冲区刷新到FileStream
并关闭文件流。 所以你不需要手动关闭它。
然后我推荐List<T>
over ArrayList
。 不应该使用ArrayList
,它不是类型安全的,如果你在.Net2.0或更高版本,应该避免使用。
还要考虑使用File.WriteAllLines方法,这样就不需要这么多行代码了。 一切都由WriteAllLines
方法本身管理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.