我创建了一个使用File.delete()方法删除文件的迷你程序,但如果我使用缓冲阅读器读取.txt文件时遇到了一点问题在我删除它之前,它不会删除该文件。我确实想出了一个解决方案:在删除文件之前,我只关闭了缓冲读取器。然而,这对我来说没有任何意义,为什么会出现这种情况,任何人都可以解释这一点。缓冲阅读器和file.delete
import java.io.*;
import java.nio.file.Files;
public class Purge {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String sample;
boolean result = false;
BufferedReader amg = new BufferedReader(new FileReader("C:/Users/Steven/Desktop/me.txt"));
sample = amg.readLine();
amg.close();// closes the buffered reader
System.out.println("Haha I'm stille here: "+sample);
File anesu = new File("C:/Users/Steven/Desktop/me.txt");
if (anesu.exists()){
try{result = anesu.delete();
}catch(Exception x){
System.out.println("Problem Deleting File"+x);
}
catch(Throwable e){
System.out.println("Problem Deleting File Throwable"+e);
}
}else{
System.out.println("No File ");
}
System.out.println("File has been deleted: "+result);
}
}
我不确定文件锁定行为java(或windows),但删除一个被“BufferedReader”打开的文件(可能仍在使用)将被另一个File对象删除没有错误?它通常期望您在尝试删除它们之前关闭所有文件。 – shanmuga
这里没有任何意义的是试图删除一个你仍然可以阅读的文件。下决心是否尝试读取文件或将其删除。你不能同时做两个。 – EJP