【发布时间】:2011-10-20 14:38:25
【问题描述】:
如何提高 streamwriter 写入 83MB csv 文件的速度。 我已经将缓冲区大小增加到 65536,但它也消耗了更多时间。如何提高速度。
StreamWriter writer =new streamWriter(
new FileStream(filePath, FileMode.CreateNew), Encoding.UTF8, 65536))
string str=string.Empty;
while((str = reader.ReadLine())!=null)
writer.WriteLine(str)}
writer.Close()
【问题讨论】:
-
你能把你现在用来写的代码贴出来吗?
-
它需要多长时间,您有多确定它是 StreamWriter 而不仅仅是计算您正在编写的数据所花费的时间?
-
试试复制/粘贴 512 MB 的 csv 文件需要多长时间。这是您可以做到的最快速度。
-
例如。 83mb 文件需要 34 分 27 秒,缓冲区大小为 65536。如果我没有给出缓冲区大小,则需要 35 分 50 秒
-
StreamWriter writer =new streamWriter(new FileStream(filePath, FileMode.CreateNew), Encoding.UTF8, 65536))string str=string.Empty;While((str = reader.ReadLine())!=null)writer.WriteLine(str)}writer.close()
标签: c# winforms web-applications