文本文件中C#中的StreamWriter限制
我有一个包含100行的数组列表。 当尝试将其导出到文本文件(TXT)时,输出仅为84行,并且在第八十四行的中间停止。 当我查看文件大小时,它显示了精确的4.00KB,好像流写入器有某种限制。我尝试使用不同的参数等,但它不断发生 代码如下:文本文件中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
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
overArrayList
<不应使用code>ArrayList,它不是类型安全的,如果您使用的是.Net2.0或更高版本,则应避免使用它
也考虑使用方法,这样你就不需要这些代码行了。一切都由
writeAllines
方法本身管理。使用using
-statement。好的,下次我将使用此技巧。谢谢:)使用评论修复了我的问题。除了添加using关键字和花括号外,我没有修改任何一行代码,现在一切都很好!