【问题标题】:How to avoid frequently file write in JavaJava如何避免频繁的文件写入
【发布时间】:2013-04-14 16:12:03
【问题描述】:

我有问题: 在一个循环中,每次我需要将一个大字符串写入一个文件(或临时文件)时,然后处理将该文件作为下一步的参数。

一些东西:

for(int i=0;i<n;i++){
    File f = File.createTmpFile("xxx","xxx");
    // write into f etc. 
    String result = func(f);
}

由于我认为每次创建文件并将字符串写入其中似乎都非常昂贵,那么有没有其他方法?

【问题讨论】:

  • 这些“大”字符串有多少字节?有多少这样的字符串?为什么需要将它们写入文件——你可以在内存中传递它们吗?
  • 如果你已经有了要写入文件的String,为什么还要坚持它呢?
  • func 是做什么的?您可以将文件创建移到循环之外吗?
  • 一开始为什么要创建这么多文件?

标签: java performance file-io


【解决方案1】:

如果这些字符串不需要立即保存到文件中,您可以将它们存储在 内存 中,某种集合,例如一个数组列表。并且当列表变得“大”时,例如,每十次,一次将所有十次写入文件。这将文件创建减少了 10 倍。

危险在于,如果发生崩溃,您可能会丢失多达 9 个值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 2012-11-13
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多