我无法删除旧文件并重命名新文件 Java

I cant delete old file and rename new file Java

在我移动除了要删除的一行之外的所有行后,旧的文本文件应该被删除,但它没有。

String del, current, data[];
delete = code.getText();
File old = new File("record.txt");
File new = new File("temp.txt");

try {
    FileWriter z = new FileWriter("temp.txt",true);
    BufferedWriter y = new BufferedWriter(z);
    PrintWriter q = new PrintWriter(y);
    
    FileReader f = new FileReader("record.txt");
    BufferedReader d = new BufferedReader(f);
    
    while((current = d.readLine()) != null) {
        data = current.split("~");
        if(!(data[0].equalsIgnoreCase(delete))) {
            q.println(current);
        }
    }
    q.flush();
    q.close();
    f.close();
    d.close();
    y.close();
    z.close();
    
    old.delete();
    new.renameTo(old);
    
    JOptionPane.showMessageDialog(this, "Deleted");
} catch(IOException e) {
}

我也使用了Files.delete(路径);也不行

old.delete() 不起作用。如何解决

-- 啊我明白了,我没有为其他功能关闭。Thx

您使用 File.delete() 删除文件 - 但您没有检查 return 代码。了解 File.delete() and File.deleteOnExit()

总而言之,您需要预测错误并定义应用程序的行为。正如 @k314159 已经指出的那样,捕获异常而不做某事意味着你隐藏了错误——难怪当你的应用程序行为不当时你会感到困惑。