创建文件后,Java.exe将文件锁定一段时间

时间:2014-12-03 13:36:46

标签: java file

我编写了一个小程序,它压缩一个tiff文件并将压缩后的一个文件放在一个单独的文件夹中"压缩" ,当我尝试对其执行操作时,生成的新文件被java.exe锁定。

当我手动运行该方法然后java.exe没有锁定它但是当我通过Web服务调用调用该方法然后它被锁定时,不知道为什么会发生这种情况,但是锁定只持续一段时间,之后我可以删除它

2 个答案:

答案 0 :(得分:1)

您需要关闭用于编写文件的资源。

例如FileWriterBufferedWriter

FileWriter fw = null;
BufferedWriter bw = null;
try {
    fw = new FileWriter(new File(outputFile));
    bw = new BufferedWriter(fw);
    bw.write(content);
} catch (Exception e) {
    // do something with e
} finally {
    if(bw != null) {
        bw.close();  // release the resource
    }
}

使用try-with-resources,它会自动关闭try块:

try(FileWriter fw = new FileWriter(new File(outputFile));
    BufferedWriter bw = new BufferedWriter(fw)) {
    bw.write(content);
}

答案 1 :(得分:0)

问题是因为垃圾收集器,当从netbeans运行时,我猜netbeans在每次程序执行后调用垃圾收集器,但不是Webservice调用的情况,在我的代码中显式调用GC后问题已解决。