wild84
wild84
采纳率91.6%
2018-01-11 13:55

C#读取文件的速度很慢怎么处理?

5
已采纳

程式如下:

 public static string ReadFile(string path)
        {
            if (!File.Exists(path))
            {
                Console.WriteLine("{0} do not exist",path.Substring(path.LastIndexOf(@"\")+1));
                return string.Empty;
            }
            String text = File.ReadAllText(path,Encoding.UTF8);
            Console.WriteLine("文件读取完成:"+text);
            return text;
        }

读取一个61k的全国城镇json文件就很久,大概用2-3秒这样子,很影响窗口的打开,
每次打开窗口都要等.这样怎么处理呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • b100522 椎名小由奈 3年前

    就这个函数,绝对不可能用2-3秒。
    可能是其他部分的原因。
    在程序里多加几个时间戳,排查一下。

    点赞 评论 复制链接分享
  • New_child 安之老大爷 3年前

    StreamReader读取就行。这么小的文件会卡死这应该不是读取的问题,单步检查一下

    点赞 评论 复制链接分享
  • qq_21287781 qq_21287781 3年前

    用StreamReader读取快
    public void test(string path)
    {
    System.IO.StreamReader reader = new System.IO.StreamReader(path);

            string text = reader.ReadToEnd();
            reader.Close();
        }
    
    点赞 评论 复制链接分享
  • chenshenggangatxjgc 超级僵尸 3年前

    使用文件流的读取方式

    点赞 评论 复制链接分享
  • hxycsdn9159 hxycsdn9159 3年前

    这个函数没有问题,时间长可能是其他地方引起的,把其它地方的代码也贴出来

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 3年前

    只读取了这么一个文件么?按理说不会啊,是不是有杀毒软件什么的干扰。文件系统的故障或者什么问题。

    点赞 1 评论 复制链接分享
  • hedyhome hedyhome 3年前

    http://www.51aspx.com/code/codename/58803 看看这个我写的,多线程 异步处理 200M txt的数据分析

    点赞 评论 复制链接分享
  • qq_41446514 qq_41446514 3年前

    #可以直接读到数据库处理,或者本地直接处理完了再进行远程数据库操作~

    点赞 评论 复制链接分享
  • u011662319 nwilliamfeng 3年前

    为什么不用异步调用呢,这样ui线程不会被阻塞,建议用async await方式处理

    点赞 评论 复制链接分享