读书人

StreamWriter反复实化例化输出效率低下

发布时间: 2013-10-21 17:03:30 作者: rapoo

StreamWriter反复实化例化输出效率低下,我这代码应如何提高效率?
我下面是用了while动态取得内容,再StreamWriter输出写文件,但是我发现在 while里面不断重复实例化StreamWriter时,效率会变得很低,很耗资源,请问如何将 StreamWriter实例化移到 while 的外面来?或者有没有更高效的写法?谢谢大家

while (Dr.Read())
{
......
//生成 动态文件名 和 内容
......

StreamWriter sw = new StreamWriter("文件名", true, );
sw.Write("内容");
sw.Flush();
sw.Close();
}

分数不多,全部奉上,谢谢大家帮忙。
[解决办法]
using(StreamWriter sw = new StreamWriter("文件名", true, ))
{
while (Dr.Read())
{


sw.Write("内容");

}
}


*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
[解决办法]
先存下来,一次性写入

Dictionary<string,StringBuilder> dict= new Dictionary<string,StringBuilder>();
while (Dr.Read())
{
if(!dict.ContainsKey("文件名"))
{
dict.Add("文件名",new StringBuilder());
}
dict["文件名"].AppendLine("内容");
}

foreach(var kvp in dict)
{
using(StreamWriter sw = new StreamWriter(kvp.Key, true, ))
{
sw.Write(kvp.Value。ToString());
}

[解决办法]
每次写的都是单独的文件名,这效率问题似乎不在 StreamWriter 上吧。
[解决办法]

引用:
因为我循环的次数上万次,每次将内容输出成一个文件,这样就要输出上万个不同的文件,如果要在循环里做上万次的输出实例化,这样就会变得很慢,大家说我的思路正确吗?有什么好的方法?谢谢大家。


异步 多线程。

读书人网 >asp.net

热点推荐