我无法删除旧文件并重命名新文件 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 已经指出的那样,捕获异常而不做某事意味着你隐藏了错误——难怪当你的应用程序行为不当时你会感到困惑。
在我移动除了要删除的一行之外的所有行后,旧的文本文件应该被删除,但它没有。
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 已经指出的那样,捕获异常而不做某事意味着你隐藏了错误——难怪当你的应用程序行为不当时你会感到困惑。