2

我想使用流式阅读器将多个文件的文本读入一个字符串,但截至目前,我的代码让我每次想读取不同的文件时都创建一个新的流式阅读器。这行得通,尽管重复数百次后,它似乎效率很低。我相信这是一个非常容易解决的问题,但我对编程还是很陌生,所以我会非常感谢一些知识。

我想避免的低效代码示例:

someloop
{

    using (StreamReader sR = new StreamReader(changingfilename))
    {
      textString = sR.ReadToEnd();

    }

}
4

3 回答 3

2

从磁盘读取比较慢。StreamReader 的实例化可以忽略不计。缓慢的部分是 ReadToEnd(),而不是新的 StreamReader()。如果您的代码太慢,请尽量避免从磁盘读取。

某些版本的 Visual Studio 附带一个分析器,它会准确告诉您哪些方法正在花费程序的 cpu/时钟时间

于 2012-06-25T04:35:57.910 回答
0

那么你必须为每个文件创建一个 stramreader 你可以做的是创建一个数组并像这样读取它

List<string> lstFileNames=new List<string>();
StringBuilder stringBuffer=new StringBuilder();
lstFileNames.Add("File1");
lstFileNames.Add("File2");
for(int i=0;i<lstFiles.Count;i++)
{
     using (StreamReader sR = new StreamReader(lstFiles[i]))
    {
        stringBuffer.Append(sR.ReadToEnd());
    }
}

用于附加字符串的用户字符串生成器。

于 2012-06-25T04:28:21.363 回答
0

更好的方法是让 .NET 为您处理此问题并使用File.ReadAllText(yourFileNameAndPath)静态方法。

于 2012-06-25T04:32:40.357 回答