读取文本文件的速度比较和异步读取文本文件

c# 读取大容量文本插入SqlServer数据库(超详细) 写在前面 读取大容量文本数据到数据库,可以用流的方式读取到内存然后再拼接成T-SQL语句插入,显然,这个是效率极低的做法。 下面给大家展示一个超快速的大容量读取文本插入SqlServer数据库,用的是BULK INSERT 分三步,第一步创建数据库和表,第二步构造出一个文本数据,第二步读取文本数据到数据库 第一步:创建数据库和创建数据表 --创建数据库 CREATE DATABASE MDBIArbinXMasterInfo; --创建数据表 USE [MDBIArbinXMasterInfo] GO / 阅读详情

策划有一个需求,需要读取1千多个文本文件。 

最开始用的最简单的readalltext

       string s =  System.IO.File.ReadAllText(fileName, System.Text.Encoding.UTF8);

用了两分钟才加载进来 ,这还不疯。

后来查找文档 找到了一篇文章 ,内容很详细

https://cc.davelozinski.com/c-sharp/the-fastest-way-to-read-and-process-text-files

对文件的读取有了更深的了解,但是速度还是不理想。

于是决定使用异步的方式读取 ,终于满足了需求。

        System.Threading.Tasks.Task<string> task = ReadFile(fileName);
        task.ContinueWith(t =>
        {
            string s = t.Result;
        });

    private async static System.Threading.Tasks.Task<string> ReadFile(string name)
    {
        System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();

        try
        {
            using (System.IO.FileStream fs = System.IO.File.Open(name, System.IO.FileMode.Open, System.IO.FileAccess.Read))
            using (System.IO.BufferedStream bs = new System.IO.BufferedStream(fs))
            using (System.IO.StreamReader sr = new System.IO.StreamReader(bs))
            {
                string s;
                while ((s = await sr.ReadLineAsync()) != null)
                {
                    stringBuilder.AppendLine(s);
                }
                return stringBuilder.ToString();
            }

        }
        catch (System.Exception e)
        {
            return "";
        }
    }

在这里记录一下 ,

易语言实现大文本文件随机读取一行操作 易语言是一种简单易学的编程语言,它通过中文关键字和语法结构,极大地降低了编程的学习难度,使得编程变得更加亲民化。对于初学者而言,易语言提供了一种快速入门的途径,而对于有经验的开发者来说,它也能作为一种高效的工具,来快速实现特定的功能需求。 阅读详情

相关推荐

LabVIEW中读取文本文件的数据展示实战

LabVIEW,全称Laboratory Virtual Instrument Engineering Workbench,是由美国国家仪器公司(National Instruments,简称NI)开发的一种基于图形化编程语言(G语言)的集成开发环境。它提供了一个直观的开发平台,使得工程师和科学家可以使用图形而非传统的文本代码来设计和实现数据采集、仪器控制以及工业自动化应用。文件路径是文件系统中文件或目录的地址,通常以字符串的形式表示。在不同的操作系统中,路径的表示方式可能有所不同。

weixin_33431149的博客 1003

C#如何快速读取大型文本文件?StreamReader+FileStream

StreamReader实际上是在FileStream之上建立的一个文本读取器,它提供了更方便的文本读取功能,可以直接读取文本数据,而无需手动进行字节到文本的解码操作。

book_dw5189的博客 2287

别再拍脑袋估工时了!手把手教你用FPA功能点分析法,给软件项目算笔明白账

本文详细介绍了FPA功能点分析法在软件开发工作量评估中的应用,帮助团队告别拍脑袋估算。通过量化系统功能组件,FPA提供客观的工时和成本预估,特别适合需求不明确的项目初期。文章以财务系统为例,拆解FPA计算流程,并分享实用估算模板,助力技术管理者提升项目规划能力。

weixin_42614269的博客 387

c#读取超大文本文件-速度快

c#读取超大文本文件-速度快 private string ReadTxtFile(string fileName) { string txt = ""; // var fileDir = this.txtFileFolder.Text.Trim(); var fileDir = fileName; byte[] allBytes = null; byte[

Txwtech 4681

RunHarmony报错解析:如何解决data.use与cell.embeddings维度不匹配问题

本文深入解析了单细胞数据分析中RunHarmony函数报错'non-conformable arguments'的根源,即data.use与cell.embeddings矩阵维度不匹配。核心原因是assay(如RNA与integrated)错配导致细胞ID或数量不一致。文章提供了三种解决方案:最推荐显式指定assay.use参数,也可设置project.dim=FALSE或统一数据环境,并给出了最佳实践指南以避免此类错误。

weixin_29093017的博客 575

HAL库:中断处理函数 及 weak弱声明中断回调函数 详解

HAL库中断处理函数 及 weak弱声明中断回调函数

L_Z_J_I的博客 5162

C#高效的读取大型文本文件的方法

本文转载连接:https://blog.youkuaiyun.com/hust_zhang/article/details/6307055 ufferedStream+FileStream+StreamReader 开个10M缓冲池,然后加上异步,速度飞飞的。 MemoryStream跟StringReader / StringWriter类别用法差不多,但两者还是些微不同;MemoryStre...

newbie的博客 5791

Spring AI + RAG 构建电商智能客服:从 PDF 文档解析到精准问答的全链路实战

核心框架:向量数据库:- PostgreSQL + pgvector (生产推荐)- Redis Stack (轻量级方案)- ChromaDB (快速原型)文档解析:- Apache PDFBox: PDF 文本提取- Spring AI Document Readers: 结构化解析大模型:- 阿里云百炼 (DashScope)- 本地部署:Qwen/ChatGLM/*** 电商领域实体*/@Data@Builder@ToString/*** 商品类型。

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 380

使用C#读取文件更有效率的几种方法

C#读取文件一般靠声明并使用File的OpenRead实例化来实现,那如何更有效的实现C#读取文件,则是本文介绍的内容。 AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验 C#给我们提供了很强大的功能,包括如何读取文件。读取文件也是日常开发中,实现功能操作的重要步骤,希望本文能给大家了解C#读取文件有更深刻的了解。51CTO编辑推荐《C

newbie的博客 2933

视源CVTE嵌入式面试题及参考答案(200+面试题,17万字)

内核模块如何设置? 内核模块是可在运行时动态加载到内核或从内核卸载的代码块。以下是设置内核模块的步骤: 首先,编写内核模块代码。通常使用 C 语言编写,包含必要的头文件,如<linux/init.h>、<linux/module.h>等。在代码中,需要定义模块的初始化函数和清理函数。初始化函数在模块加载时被调用,用于进行模块的初始化工作,如注册设备、分配资源等。清理函数在模块卸载时被调用,用于释放资源、注销设备等。 例如: #include <li

大模型大数据攻城狮的专栏 2202

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体

本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。

图形/计算GPU的驱动与虚拟化技术分享园地 643

python 异步读取文件,速度变快了吗

没毛病,时间确实减少了,但是网上没看到文件读取的示例,最后说 你们看,用了异步方式读取文件,时间减少了。不过不用担心,文件读取速度很快,一般情况不用考虑文件读取速度,真想提高,有人跟我说买更贵的ssd。经过我的测试,以上4个case情况一样,异步没有减少读取时间,那就用case3作为例子。白话:多个协程任务的io等待是可以同时进行的,因此减少了程序运行的总时间。case4:文件大小80Mb,数量500个。case3:文件大小80Mb,数量3个。接下来的问题,什么原因呢,我的答案是。

qq_21319187的博客 851

Freeswitch DTMF 按键无法接收问题修复

freeswitch 在接收到 update后,会更新成新的 payload type,但是给的200响应,仍然是旧的,这时候就会导致手机侧认识需要发送旧的payload,所以发到 fs 后就会导致直接丢包,不去处理RTP包了。呼叫时需要设置通道变量 rtp_manual_rtp_bugs=ACCEPT_ANY_PAYLOAD ,这时候FS 就不会对包的payload进行判断,直接判定通过。应该修复 freeswitch 给响应时,应该根据收到的 payload 发送给手机,但是一直未找到正确的路径。

2301_81507069的博客 373

C++读取文件 怎样才能达到最快的速度?

首先,文件读取的速度极限就是硬盘的读速度上限,想要达到硬盘的读速度上限就要设法不让硬盘停下来,让它一直读。 1:读取的是各种小文件还是一个大文件? 顺序读大文件这个场景,内核优化过,你需要做的就是不要乱搞影响内核工作。老老实实用 fread 读。除非实验分析数据明显会加快,否则不要轻易用。 OS 支持异步 IO 就用异步的,pending 一堆读请求,目的就是不让硬盘闲着。 2...

MISAYAONE的博客 5935

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

体验飞一般的速度!文件多线程读取下载+异步上传云存储

大批量文件多线程批量读取下载+异步上传云存储

niaonao 926

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

异步读取hbase数据会有什么问题

我整理的一些关于【异常处理】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/bLN8S1异步读取 HBase 数据的问题 HBase 是一个分布式、可扩展的 NoSQL 数据库,广泛应用于大数据存储和实时读写。虽然 HBase 提供了强大的异步读取功能,能够改善性能和响应速度...

weixin_40286923的博客 145

实验一 同步与异步write的效率比较

实验一 同步与异步write的效率比较 一、程序要求 实验要求程序必须指定输出的文件名,而该文件是否按同步方式打开,则是可以选择的。因此程序至少带一个、至多两个输入参数。程序默认从标准输入STDIN_FILENO读取输入文件,可以利用shell的输入定向功能选择具体的输入文件。 timewrite < outfile > [sync] 不得变更程序的名字和使用方法。sync参数为可选,若有则输出文件用O_SYNC打开(见课本P51的解释)。 例: timewrite <f1 f2

matafeiyanll的博客 1709

异步和同步

使用异步JSON的好处是可以提高程序的性能和响应速度,尤其在处理大量的数据时效果更加明显。异步提交表单:当用户在网页上填写完一个表单后,点击提交按钮时,如果使用同步方式提交表单,用户需要等待服务器响应完成后才能继续其他操作。在处理JSON(JavaScript Object Notation)数据时,异步和同步的方式也是可以用来读取和解析JSON数据的。总的来说,异步JSON适用于对性能和响应速度要求较高的情况下,而同步JSON适用于对数据的完整性和一致性要求较高的情况下。

weixin_69857662的博客 705

Java NIO 异步读取网络数据

简单的来说,Java NIO 提供了一种异步非阻塞模型,使得网络请求都可以并发执行。 服务器端采用这种模型,响应速度将大大提高,Apache,Nginx 都是这种模型。 本文介绍的是客户端如何采用这种模型来提高客户端访问网络的速度。 1. 使用范例1. public static void main(String[] args) throws Exc...

ayx940525的博客 273

Redis、MongoDB、ZODB速度比较(小数据量)

刚才用100kb的小文本文件,用1000次循环,在我的本本上,对redis(via redis-py),mongodb(via py-mongo)和ZODB(Zope的数据库,OODB,直接使用key-value模式,没有依附其他数据结构)进行了小规模写入和读取测试。 发现一些结果,有些有点意外: 逐次写入: 也就是 for record in file: db.inse...

Right Track Wrong Train 1587

Unity异步纹理读取插件推荐

Unity异步纹理读取插件推荐 异步纹理读取(AsyncTextureReader)是一个为Unity开发环境设计的开源插件,主要使用C++和C#编程语言实现。该插件的核心目的是允许开发者异步地从GPU内存中复制纹理和缓冲区到托管系统内存,以提高Unity中的性能和资源管理。 基础介绍与主要编程语言 该插件是一个原生Unity插件,这意味着它直接与Unity的底层API交互。主要编程语言为C++,...

gitblog_01171的博客 787

同步和异步

操作系统的异步和同步区别,同时通过两种读写硬盘的方式来具象化

m0_46417841的博客 1360

移动硬盘读取小文件速度慢的原因及解决方法

移动硬盘读取小文件速度慢的原因及解决方法

m0_62648611的博客 1万+

java与scala,异步执行的比较

java与scala,异步执行的比较 近期项目需实现针对批量数据进行相关计算并返回数据的操作。具体实现为: 从缓存中读取批量数据; 针对每条数据进行相关计算; 计算结果再进行相关操作,比如过滤,求和等; 批量结果返回。 客户端等待返回数据进行展示。这样就要求每次计算批量数据时,速度够快,毫秒内响应。否则客户端就处于长期等待的状态。 在实现时,比较了java与scala的实现方式,得出使用sca...

tao_jiayun的博客 783

【FIFO】异步 FIFO 设计

异步 FIFO 指一种 FIFO 设计,其中数据值从一个时钟域写入 FIFO 缓冲区,而数据值从另一个时钟域的同一 FIFO 缓冲区读取,其中两个时钟域彼此异步。异步 FIFO 用于将数据从一个时钟域安全地传递到另一个时钟域。本文讨论了一种 FIFO 设计风格以及在进行异步 FIFO 设计时必须考虑的重要细节。

记录学习历程 6853
上一篇: String 的优化之一共享StringBuilder
下一篇: 同时安装python2 和python3
write_the_code
博客等级 码龄12年 12粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值