zoukankan      html  css  js  c++  java
  • 大量数据分批读取方法

    情景1:已知List总数,要分批处理数据。
      经典的分页逻辑就可以实现了,代码如下:

           int size = 100;//每次读取条数
                int count = total;//总数量
                int pageCount = (count / size) + (count % size == 0 ? 0 : 1);//总页数
    
                for (int i = 0; i < pageCount; i++)
                {
                    list.Skip(i * size).Take(size).ToList();
                    // TODO
                }

    情景2:未知数据总数,但是也要分批处理数据。
      举一个例子,超大文件按行分割,实现逻辑,每以流的方式读取N行,然后写入新文件。关键代码如下:

       StringBuilder sbNewContent = new StringBuilder();
        StreamReader streamReader = new StreamReader(@"D:	est.txt", Encoding.UTF8);
        string line = streamReader.ReadLine();
        int count = 0;
        int size = 100;
        while(line!=null)
        {
            sbNewContent.AppendLine(line);
            count++;
            
            if(count%size == 0)
            {
                //TODO 写入新文件
                sbNewContent = new StringBuilder(); //重新初始化
            }
            
            line = streamReader.ReadLine();
        }
        
        if(sb.Length > 0)
        {
            //TODO 写入新文件
        }
        
        streamReader.Close();
  • 相关阅读:
    小程序(二)
    React 之 项目搭建
    mac 终端 常用命令
    css 之 动画(翻转动画例子)
    css 之 单位
    Git 常见操作
    css 之 页面常用布局
    mac版vscode快捷键
    JSX
    Rem适配原理
  • 原文地址:https://www.cnblogs.com/booth/p/3441736.html
Copyright © 2011-2022 走看看