代码之家  ›  专栏  ›  技术社区  ›  Zorkus

Java,IO——最快删除文件的方法

  •  17
  • Zorkus  · 技术社区  · 14 年前

    我的问题是我有一个应用程序,它写了很多相对较小的(100-500kb)csv文件(几十万)。然后,这些文件的内容通过SQL加载器调用(它的Oracle数据库)加载到数据库中,这就是我必须面对的。

    所以,我需要不时地删除这些小文件,以防止它们占用所有空间。我想将它附加到写这些文件并将它们作为最后一个完成步骤加载到数据库的活动中。

    我的问题是,如何在Java中删除一组开销较小的小文件?

    事先谢谢! 迈克尔

    4 回复  |  直到 12 年前
        1
  •  13
  •   Bozho    14 年前

    好, file.delete() 应该足够(它在内部作为本机方法实现)

        2
  •  4
  •   ARKBAN    14 年前

    我建议检查一下 Apache Commons IO 图书馆。他们有一些非常有用的方法来删除fileutils类中的文件。

        3
  •  2
  •   Bill K    14 年前

    你可能会发现它的一个数量级更快,如果你壳出来,并让系统删除它们。你必须能够到达一个停止点(没有文件被处理),然后退出并删除“*”或 . 或是任何你的操作系统。

    (注意,这使您的程序非常依赖操作系统!)

    确保在Windows和Mac上,您绕过了垃圾桶功能!

    戴尔的优点 . 或者说rm*应该是批处理操作,而不是重复地打开、修改和关闭目录。

    您还可以使用类似a001、a002、a003等模式编写文件名…当你达到A999时,你进入b001并删除一个*。

        4
  •  1
  •   Chris    12 年前
    FileUtils.cleanDirectory(new File("/usr/share/test")); //linux
    
    FileUtils.cleanDirectory(new File("C:\\test")); //windows