繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM