当前位置:编程学习 > C#/ASP.NET >>

关于文件的查找替换效率问题。。急求高手进。。(我只能发20分的帖)

项目需要,我写了个程序。逻辑很简单。

有15000个不同的字符串、、

要去大概4000个文件中去匹配。。替换成固定编码格式。。。

1个字符串。进去。运行1个文件替换。需要0.005秒。。最普通的代码写法。。读出。修改。写入。

这样循环替换完4000个。。需要20秒一次。。。(4000个文件其实只有一两个是有那个字符串的。。但你不知道哪两个)

但是。。这样的过程需要15000次。。因为有15000个不同的字符串在等着。。。

这样我计算了下。。。需要3.4天的样子。。我挂在了服务器上运行。。但还是等不及。。

急求高手解决此问题。。

for (int m = 0; m < files.Count; m++)//files.Count有四千。。、
            {
                try
                {
                    StreamReader sr = new StreamReader(files[m].ToString(), Encoding.GetEncoding("utf-8"));
                    string str = sr.ReadToEnd();
                    sr.Close();
                    //替换文本 
                    if (str.Contains(oldCon))
                    {
                        str = str.Replace(oldCon, newCon);
                        have = true;
                    }
                    //更改保存文本 
                    StreamWriter sw = new StreamWriter(files[m].ToString(), false);
                    sw.WriteLine(str);
                    sw.Close();
                }
                catch
                {
                    continue;//某文件如有问题。继续。。文件列表已经过处理。不会有问题。。、
                }
            } --------------------编程问答-------------------- 1、减少读写次数
15000次替换一次完成
2、如果没有替换就不去streamwriter
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,