【问题标题】:What is the right way to write a big file with delphi用delphi写大文件的正确方法是什么
【发布时间】:2014-01-25 23:49:56
【问题描述】:

我需要用 Delphi 编写一个非常大的文件(大约 100-150 mb)。 此文件将是 CSV 文件或 SQL 文件(用户可以选择)。

过去我总是使用 TStringList 对象来编写文本文件,但在这种情况下,我有一个非常大的文件,我认为这不是最好的解决方案。 如果可能的话,我需要一个速度和低内存的解决方案。

【问题讨论】:

  • 这是一个小文件。你现在有什么问题?您可能会从我的缓冲流代码中受益。 stackoverflow.com/questions/5639531/…
  • 使用缓冲流可以优化文件 I/O,但不会解决内存使用问题。在写入文件时,整个TStringList 仍会在内存中,除非您使用像TStreamWriter 这样的时间以较小的片段写入流以减少内存使用。
  • @Remy 是对的。除非您需要内存中的整个文件,否则不要这样做。但是对于这种大小的文件来说,缓冲 I/O 仍然是值得的。

标签: delphi text


【解决方案1】:

使用TFileStream 并在创建数据时将输出数据写入其中。这样,您会立即写入文件并相应地增长,并且不会浪费内存。

如果您使用的是 Delphi 2009 或更高版本,您可以使用 TStreamWriter 类来包装 TFileStreamTStreamWriterWrite()WriteLine() 写入 String 和格式化数据的方法。

【讨论】:

    猜你喜欢
    • 2013-07-24
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2010-11-26
    相关资源
    最近更新 更多