【发布时间】:2013-07-05 06:28:22
【问题描述】:
我需要帮助找出最快的方法来读取大约 80 个文件,每个文件中的行超过 500,000 行,并将每个输入文件的行作为主文件中的一列写入一个主文件。主文件必须写入记事本等文本编辑器,而不是 Microsoft 产品,因为它们无法处理行数。
例如,主文件应如下所示:
File1_Row1,File2_Row1,File3_Row1,...
File1_Row2,File2_Row2,File3_Row2,...
File1_Row3,File2_Row3,File3_Row3,...
等等
到目前为止,我已经尝试了 2 个解决方案:
- 创建一个锯齿状数组以将每个文件的内容保存到一个数组中,然后在读取所有文件中的所有行后,写入主文件。此解决方案的问题是 Windows 操作系统内存会引发错误,即正在使用过多的虚拟内存。
- 为读取特定行号的 80 个文件中的每一个动态创建一个读取器线程,一旦所有线程完成读取一行,将这些值组合并写入文件,并对所有文件中的每一行重复。这个解决方案的问题是它非常非常慢。
有没有人有更好的解决方案来快速读取这么多大文件?
【问题讨论】:
-
"... 像记事本,而不是 Microsoft 产品..." - 我不想告诉你,但记事本是 Microsoft 产品
-
...文本文件就是文本文件。换句话说,没有
NotePadFileStream。
标签: c# performance file file-io text-files