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