Hei!读取流中的多个文件
如何一次读取多个文本文件? 我想要做的是读取一系列文件并将其全部添加到一个大文件中。 Curently我这样做:
- 采取的每个文件,并与一个StreamReader
- 在一个StringBuilder读取的StreamReader完全打开它,如果超过了内存大小追加到当前StreamBuilder
- 检查,如果是在文件的末尾写入StringBuilder并清空StrigBuilder
不幸的是,我观察到读取速度avg仅为4MB/sec。我注意到,当我在磁盘上移动文件时,速度为40 MB /秒。 我正在考虑缓冲Stream中的文件,并像写作一样读取它们。任何想法我怎么能做到这一点?
更新:
foreach (string file in System.IO.Directory.GetFiles(InputPath))
{
using (StreamReader sr = new StreamReader(file))
{
try
{
txt = txt+(file + "|" + sr.ReadToEnd());
}
catch // out of memory exception
{
WriteString(outputPath + "\\" + textBox3.Text, ref txt);
//sb = new StringBuilder(file + "|" + sr.ReadToEnd());
txt = file + "|" + sr.ReadToEnd();
}
}
Application.DoEvents();
}
这是我现在怎么做。
您使用的是什么版本的.Net? – svick 2012-02-07 13:08:33
我使用:.net 3.5 – 2012-02-07 13:11:04
邮政编码。 .NET中的流类可以做得比这更好。另外,根据.NET版本,流上的方法可以通过.CopyTo从一个流直接复制到另一个流,而不需要中介。 – Joe 2012-02-07 13:11:37