【发布时间】:2014-01-25 23:49:56
【问题描述】:
我需要用 Delphi 编写一个非常大的文件(大约 100-150 mb)。 此文件将是 CSV 文件或 SQL 文件(用户可以选择)。
过去我总是使用 TStringList 对象来编写文本文件,但在这种情况下,我有一个非常大的文件,我认为这不是最好的解决方案。 如果可能的话,我需要一个速度和低内存的解决方案。
【问题讨论】:
-
这是一个小文件。你现在有什么问题?您可能会从我的缓冲流代码中受益。 stackoverflow.com/questions/5639531/…
-
使用缓冲流可以优化文件 I/O,但不会解决内存使用问题。在写入文件时,整个
TStringList仍会在内存中,除非您使用像TStreamWriter这样的时间以较小的片段写入流以减少内存使用。 -
@Remy 是对的。除非您需要内存中的整个文件,否则不要这样做。但是对于这种大小的文件来说,缓冲 I/O 仍然是值得的。