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

文本文件中C#中的StreamWriter限制,c#,text-files,limit,streamwriter,C#,Text Files,Limit,Streamwriter,我有一个包含100行的数组列表。 当尝试将其导出到文本文件(TXT)时,输出仅为84行,并且在第八十四行的中间停止。 当我查看文件大小时,它显示了精确的4.00KB,好像流写入器有某种限制。我尝试使用不同的参数等,但它不断发生 代码如下: FileStream fs = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(fs); ArrayList chartLis

我有一个包含100行的数组列表。 当尝试将其导出到文本文件(TXT)时,输出仅为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
station,一切都会正常工作

using(StreamWriter sw = new StreamWriter(fs))
{
    ArrayList chartList = GetChart(maintNode);    
    foreach (var line in chartList)
    {
        sw.WriteLine(line);
    }
}
使用语句调用
Dispose
,将缓冲区刷新到
FileStream
,并关闭文件流。因此,您不需要手动关闭它

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


也考虑使用方法,这样你就不需要这些代码行了。一切都由

writeAllines
方法本身管理。

使用
using
-statement。好的,下次我将使用此技巧。谢谢:)使用评论修复了我的问题。除了添加using关键字和花括号外,我没有修改任何一行代码,现在一切都很好!