博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#读取大文本文件
阅读量:4653 次
发布时间:2019-06-09

本文共 1538 字,大约阅读时间需要 5 分钟。

  今天偶遇一同事抱怨,sqlserver导出的CSV,明明有1000W条,但用excel打开就只剩100W了,足足消失了90%,所以她怀疑文件是足量的1000W条,是excel捣了鬼。可是文件容量有2G+,用记事本打不开,如何证明CSV文件没有缺少数据,这可难坏了他。

  好吧,本着不看其他轮子,有问题自己造一个的原则,我决定用控制台程序写一个简易读取程序,具体CODE如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace BigTextReader{    class Program    {        static void Main(string[] args)        {            string path = "";            do            {                Console.WriteLine("Please input the file path:");                path = Console.ReadLine();            }            while (!System.IO.File.Exists(path));            var fileStream = System.IO.File.OpenRead(path);            while(true)            {                Console.WriteLine("Please input the start position:");                var position = Int64.Parse(Console.ReadLine());                if (position == -1)                {                    Console.WriteLine("finish");                    return;                }                fileStream.Position = position;                var byts = new Byte[1000];                fileStream.Read(byts, 0, 1000);                var str = Encoding.UTF8.GetString(byts);                Console.WriteLine(str);            }        }    }}

好了,程序如上图所示,第一步,输入文件的绝对地址,比如d:\a.csv,第二步,输入文本的位置,比如100000,程序默认读取1000个字节作展示。当位置输入为-1时,程序退出。

一个基本的大文本读取器就初见雏形了,用每个ROW的byte数*200W,果然读出了数据,完美的证明了同事的猜想,同时,读取的时间只用了100ms。

 

PS:个人感觉,Encoding,读取的byte数可以写作配置,但会拖长操作流程,同时,直接Int64.Parse是因为懒,小伙伴们不要效仿哦。

 

转载于:https://www.cnblogs.com/Damos/p/bigText.html

你可能感兴趣的文章
解决py2exe error: MSVCP90.dll: No such file or directory
查看>>
java RSA实现私钥签名、公钥验签、私钥加密数据、公钥解密数据
查看>>
Erlang 练习题
查看>>
数据挖掘十大算法总结--核心思想,算法优缺点,应用领域
查看>>
GDALWarp设置GDALWarpOptions::dfWarpMemoryLimit过大时处理失败
查看>>
libubox组件(2)——blob/blobmsg (转载 https://segmentfault.com/a/1190000002391970)
查看>>
建立RSA协商加密的安全信道
查看>>
博客园的手机版(非官方) MVC+jQuery.Mobile
查看>>
jmeter在linux上运行
查看>>
js 逻辑与 逻辑或
查看>>
“请求/响应”模型
查看>>
【坑】重写一个vector
查看>>
【UOJ 55】志愿者选拔
查看>>
Python -- pandas
查看>>
jQuery 效果 - 淡入淡出
查看>>
目标文件格式
查看>>
瑞士 -- 德语 德国 -- 德语 卢森堡 -- 德语 奥地利 -- 德语 丹麦 -- 丹麦语 挪威 -- 挪威语 爱尔兰 -- 爱尔兰语 荷兰 -- 荷兰语 比利时 -- 荷兰语...
查看>>
背景颜色设置
查看>>
推荐一款帮助负载均衡/DNS轮询服务器组使用的文件同步工具
查看>>
常用的CSS命名规则
查看>>