当前位置:  开发笔记 > 编程语言 > 正文

从文件读取不够快,我将如何加快速度?

如何解决《从文件读取不够快,我将如何加快速度?》经验,为你挑选了3个好方法。

这是我读取文件的方式:

    public static string readFile(string path)
    {
        StringBuilder stringFromFile = new StringBuilder();
        StreamReader SR;
        string S;
        SR = File.OpenText(path);
        S = SR.ReadLine();
        while (S != null)
        {
            stringFromFile.Append(SR.ReadLine());
        }
        SR.Close();
        return stringFromFile.ToString();
    }

问题是这么久(.txt文件大约是2.5兆).花了5分多钟.有没有更好的办法?

解决方案

    public static string readFile(string path)
    {

       return File.ReadAllText(path);

    }

花了不到1秒...... :)



1> Marcus Griep..:
S = SR.ReadLine();
while (S != null)
{
    stringFromFile.Append(SR.ReadLine());
}

值得注意的S是,在初始化之后永远不会设置ReadLine(),因此S != null如果输入while循环,则不会触发条件.尝试:

S = SR.ReadLine();
while (S != null)
{
    stringFromFile.Append(S = SR.ReadLine());
}

或使用其他评论之一.

如果需要删除换行符,请使用string.Replace(Environment.NewLine,"")



2> Jon Skeet..:

暂且不谈可怕的变量名称和缺少使用声明(如果有任何例外,你不会关闭文件)应该没问题,当然不应该花5分钟阅读2.5兆.

该文件在哪里?它是在一个片状的网络共享?

顺便说一句,你正在做的和使用File.ReadAllText之间的唯一区别是你正在丢失换行符.这是故意的吗?ReadAllText需要多长时间?



3> pian0..:
return System.IO.File.ReadAllText(path);

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有