我创建了一个属性文件,并想要加密它,保持同一文件夹中的加密属性文件并删除原始属性文件。当我在我的Java应用程序上第一次这样做时,它可以正确执行。但是,当我再次执行此操作时,它不会删除已创建的原始属性文件。当我尝试手动删除它时,它给出一个“重试”消息,指出“无法完成操作,因为该文件正在Java(TM)平台SE二进制文件中打开。关闭文件后再试一次。”在关闭应用程序后,可以手动删除该文件。我的代码如下所示。问题在propfile123.delete()上。我应该如何解决这个问题。
//Encrypt the property file
Encrypt_Decrypt encrpt= new Encrypt_Decrypt("AES/ECB/PKCS5Padding","properties\\"+name_of_propertice_file+".properties", mstr_pass);
try {
encrpt.encrypt();
} catch (Exception ex) {
Logger.getLogger(Secure_File.class.getName()).log(Level.SEVERE, null, ex);
}
//delete the original properties file
File propfile123= new File("properties\\"+name_of_propertice_file+".properties");
System.out.println(propfile123.exists()); // always return true
System.out.println(propfile123.delete()); //here returns false when I call at second time to this method.