gpt4 book ai didi

java - 执行操作后无法删除文件

转载 作者:行者123 更新时间:2023-12-02 03:22:18 25 4
gpt4 key购买 nike

即使关闭相应的读取器和写入器也无法删除文件。文件上存在权限file.delete() 返回 false我的代码

main(){
try{
File file=new File(path);// Path where the file is present
FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
FileWriter writer = new FileWriter(pathOther);
BufferedWriter wr = new BufferedWriter(writer);
// Readers and writers for i/o operations
while((String str=br.readLine())!=null){
wr.write(str); // Copying to another file
}
}catch(Exception e){}
finally{
reader.close(); //close reader

writer.close(); //close writer
file.delete(); //This returns false

}

最佳答案

猜测发生的情况是,您关闭了FileInputStream,但让BufferedReader保持打开状态,这会留下一些东西文件句柄。然后,当您尝试删除该文件时,它会返回 false,因为其他东西拥有该文件的句柄。

尝试以下代码:

File file = new File(path);
try {
br = new BufferedReader(new FileReader(file));

// use the reader ...
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}

// now close the file
file.delete();

更新:

在测试上述代码时,我注意到其他一些东西也可能导致您所看到的观察结果。如果 path 处的文件不存在,那么逻辑上调用 file.delete 也会因此失败。因此,在尝试删除该文件之前,您应该确保该文件确实存在。您可以调用 file.exists() 来检查这一点。

关于java - 执行操作后无法删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com