使用Java 7删除文件/文件夹

时间:2012-09-24 14:36:12

标签: java file-io java-7

我在Java中使用文件/文件夹删除功能被杀死。

代码很老了,我想知道Java 7(我升级到)是否实际上提供了性能改进,或者只是另一种语法。 (除非有好处,否则我不想重新调整所有内容)。我经常需要提取大型ZIP,然后删除内容,递归时间很残酷。

我也被困在Windows上。

由于

2 个答案:

答案 0 :(得分:2)

我建议使用社区已经提供的某种jar。 例如,common-io.x-x.jar,spring-core.jar

    Eg, org.apache.commons.io.FileUtils;
        FileUtils.copyDirectory(from, to);
        FileUtils.deleteDirectory(childDir);
        FileUtils.forceDelete(springConfigDir);
        FileUtils.writeByteArrayToFile(file, data);

        org.springframework.util.FileSystemUtils;
        FileSystemUtils.copyRecursively(from, to);
        FileSystemUtils.deleteRecursively(dir);

答案 1 :(得分:1)

文件IO非常依赖于硬件的性能。许多硬盘每秒可以执行80 - 120 IOPS。如果要打开文件,每秒最多可读取120个文件。要删除文件,每秒可能需要两次更新或最多删除60个文件。有了这些限制,你几乎无法在软件中做任何有用的事情。

如果你有SSD,那么这些可以达到每秒80,000到230,000 IOPS(增加一千多倍)此时你所做的软件可能会有所不同,但是当你处理压缩文件时,它最多就像那个CPU在这一点上将成为你的瓶颈。