c#读取文本文件 今天写了个读取txt文件的东东是用winform写的感觉读的好慢1000条数据好像要用好1分多钟这是正常现象呢还是我写的有问题呢读csv 和txt文件有什么好的方法吗分不多请大家帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/u/20110813/11/dbf26be2-ac01-441b-8727-2b013e109f54.html IO操作读1000条数据不应该那么慢,我刚才测试了下,包括写1000条,再读出来放到一个StringBuilder里面也就用了29毫秒,应该是你循环里面有很占时间的运算。如果可以的话尽量贴出你的代码。如果不方便推荐你一次吧1000条数据像我一样一次读出来放到一个IEnumerable<string>里面,再用并行把每一行转换成你要的数据,这样会快很多。 像我说的并行(多线程,你可以查阅Parallel)就可以用在你把每条数据分割的逻辑,然后创建一个事务进行数据库处理,会更快。 参考这个:Collection<string> stringBuffer = new Collection<string>(); using (StreamReader streamReader = new StreamReader("d:\\1.txt")) { string line = String.Empty; while (String.IsNullOrEmpty(line = streamReader.ReadLine())) { stringBuffer.Add(line); } streamReader.Close(); } Collection<Entity> entities = new Collection<Entity>(); Parallel.ForEach(stringBuffer, oneLineString => { //解析你每一条的数据,放到上面定义的实体集合里面。 //可以在这里操作数据库进行插入操作,但是不推荐。 //推荐在解析完成后,生成一个事务一次处理,避免多次连接数据库操作。 //用这个方法要.net4.0,以前的版本用Thread也可以实现,不过效率就... }); c#如何获得农历时间 类如何实现[""],像Session["abc"] C# tabcontrol 选项卡项大小动态控制 一段时间内,多终端同时登陆并提取资料,优化策略探讨 找不到请求的 .Net Framework 数据提供程序。可能没有安装 什么年龄段最适合学习编程? 问一个简单的问题 TREEVIEW控件如何支持双击事件? C# printPreviewDialog 打印预览只显示一页 如何用label控件动态显示系统当前的时间 帮我看看这个问题吧 问个关于NEW的问题
像我说的并行(多线程,你可以查阅Parallel)就可以用在你把每条数据分割的逻辑,然后创建一个事务进行数据库处理,会更快。
using (StreamReader streamReader = new StreamReader("d:\\1.txt"))
{
string line = String.Empty;
while (String.IsNullOrEmpty(line = streamReader.ReadLine()))
{
stringBuffer.Add(line);
}
streamReader.Close();
} Collection<Entity> entities = new Collection<Entity>();
Parallel.ForEach(stringBuffer, oneLineString =>
{
//解析你每一条的数据,放到上面定义的实体集合里面。
//可以在这里操作数据库进行插入操作,但是不推荐。
//推荐在解析完成后,生成一个事务一次处理,避免多次连接数据库操作。
//用这个方法要.net4.0,以前的版本用Thread也可以实现,不过效率就...
});