如何将大量内容快速写入TXT文档

RainStarNetwork 2010-06-30 12:49:42
现有大量数据要写入TXT文档,数据通过一个循环组合成了一个字符串。然后要写入部分文档
我先行的C#代码是
for (int i = 0; i < Records.Count; i++)
{
string info = string.Empty;
info = GetRecordsInfo(Records[i]);
File.AppendAllText(filename, info);
}
其中filename为文件名,info通过一个函数运算得到一个字符串。
现在问题是这样的话频繁操作IO,速度也不快。
试过改成如下
string info = string.Empty;
for (int i = 0; i < Records.Count; i++)
{
info += GetRecordsInfo(Records[i]);

}
File.AppendAllText(filename, info);
但是速度一样不快,原因是Records.Count数量比较大, GetRecordsInfo(Records[i])得到的内容比较长
请问有没有更好的方法,请高手们提示一下。谢谢
...全文
647 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ben_jli 2011-09-26
  • 打赏
  • 举报
回复
这比喻真牛逼
[Quote=引用 9 楼 cancerser 的回复:]

没有啥办法
小学题,一个水塘的水流到另一个水塘,在只有一个口的情况下 你咋整都那样
而且一个池塘只能开一个口。
流就这点缺陷。

分成多份,同时存多个文件吧,只要系统IO顶的住就快很多
[/Quote]
q107770540 2010-06-30
  • 打赏
  • 举报
回复
另开一个线程 让系统在那边自己慢慢写
你该干吗干吗
s8975565 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cancerser 的回复:]
没有啥办法
小学题,一个水塘的水流到另一个水塘,在只有一个口的情况下 你咋整都那样
而且一个池塘只能开一个口。
流就这点缺陷。

分成多份,同时存多个文件吧,只要系统IO顶的住就快很多
[/Quote]
+1
cancerser 2010-06-30
  • 打赏
  • 举报
回复
没有啥办法
小学题,一个水塘的水流到另一个水塘,在只有一个口的情况下 你咋整都那样
而且一个池塘只能开一个口。
流就这点缺陷。

分成多份,同时存多个文件吧,只要系统IO顶的住就快很多
A_A66 2010-06-30
  • 打赏
  • 举报
回复
支持一个!
加油馒头 2010-06-30
  • 打赏
  • 举报
回复
一次写入内存,数据量大会卡死

  • 打赏
  • 举报
回复
StringBuilder 处理字符串快很多
aofengdaxia 2010-06-30
  • 打赏
  • 举报
回复
可以使用StringBuilder。把内容全部写到里面,然后一次性写入文本,看看是不是快一些
RainStarNetwork 2010-06-30
  • 打赏
  • 举报
回复
我已经是在线程中进行上述处理,但是太慢,想优化一下。

我要写入的内容要经过一定的处理才能得出字符串的。有人建议先写入内存,然后再一次性写入会比较快,但是第二种方法好像就是如此,但由于太多的字符串相加操作,反而更慢了
wanghui0380 2010-06-30
  • 打赏
  • 举报
回复
1。我在想为啥不直接使用xml,如果Records是dataset或datatable你大可以直接write到xml里
如果Records是普通对象,你大可以直接序列化

2。如果是csv文件,则大可以直接是sql直接输出他,由数据库直接生成csv文件的速度比较快

3。如果是常规型文本,我更愿意使用T4模板引擎来完成(虽然模板引擎的生成速度未必很快,好在数据和格式分开,俺们只提供数据就成,格式模板引擎会自己按规则完成)
winner2050 2010-06-30
  • 打赏
  • 举报
回复
同意楼上。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧