我正在开发一个应用程序,它从巨大的文本文件(~2.5 GB)中读取行,将每一行操作为特定格式,然后将每一行写入一个文本文件。关闭输出文本文件后,程序“批量插入”(SQL Server)将数据插入我的数据库。它有效,只是速度很慢。
我正在使用StreamReader
和StreamWriter
。
由于我必须如何操作文本,我几乎只能一次读一行。但是,我认为如果我制作一个行集合并每隔 1000 行左右写出一个集合,它至少会加快速度。问题是(这可能纯粹是由于我的无知)我无法编写string[]
using StreamWriter
. 在探索了StackOverflow和互联网的其他部分之后,我遇到了s File.WriteAllLines
,它允许我将string[]
s 写入文件,但我认为我的计算机内存不能同时处理 2.5 GB 的数据存储。此外,该文件已创建、填充和关闭,因此我必须制作大量较小的文件来分解 2 GB 的文本文件,然后才能将它们插入数据库。所以我宁愿远离那个选项。
我能想到的一项 hack 工作是制作一个StringBuilder
并使用该AppendLine
方法添加每一行以制作一个巨大的字符串。然后我可以将其转换StringBuilder
为字符串并将其写入文件。
但我的猜想已经够多了。我已经实现的方法有效,但我想知道是否有人可以提出一种将数据块写入文件的更好方法?