wild84
wild84
2018-01-11 13:55
采纳率: 91.6%
浏览 2.5k

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

程式如下:

 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
    椎名小由奈 2018-01-12 01:09
    已采纳

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

    点赞 评论
  • u011662319
    nwilliamfeng 2018-01-11 14:01

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

    点赞 评论
  • qq_41446514
    qq_41446514 2018-01-11 14:08

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

    点赞 评论
  • hedyhome
    hedyhome 2018-01-11 14:28

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

    点赞 评论
  • caozhy

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

    点赞 评论
  • hxycsdn9159
    hxycsdn9159 2018-01-12 01:17

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

    点赞 评论
  • chenshenggangatxjgc
    超级僵尸 2018-01-12 03:38

    使用文件流的读取方式

    点赞 评论
  • qq_21287781
    qq_21287781 2018-01-12 11:50

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

            string text = reader.ReadToEnd();
            reader.Close();
        }
    
    点赞 评论
  • New_child
    安之老大爷 2018-01-23 06:41

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

    点赞 评论

相关推荐