我在Java中删除文件时遇到了一些问题。我正在为我的OOP类做一个简单的CRUD应用程序,我们需要使用文件作为数据库。我试图创建一个删除数据库的函数(删除所有数据库文件并保存新的空数据库),但是,到目前为止,我总是收到成功消息,但文件仍然存在,未触及。
我在config.java文件中设置了这样的文件路径:
private String fileBooks = "books.dat";
private String fileUsers = "users.dat";
private String fileOperations = "operations.dat";
我有这个功能,负责文件擦除:
public void deleteFiles() {
try {
File fbooks = new File(config.getFileBooks());
File fusers = new File(config.getFileUsers());
File fop = new File(config.getFileOperations());
if(fbooks.delete() && fusers.delete() && fop.delete()){
JOptionPane.showMessageDialog(null, "Success!",
"Database cleaning", JOptionPane.PLAIN_MESSAGE);
}else{
JOptionPane.showMessageDialog(null, "Error!",
"Database cleaning", JOptionPane.ERROR_MESSAGE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
我检查了继承,控制器,一切看起来都很好。我做错了什么?路径有问题吗?
如果是有用的信息我正在运行Ubuntu 14.04 LTS,使用NetBeans进行编码。
欢迎任何帮助和代码建议。
编辑:
我添加了System.out.println(fbooks.getAbsoluteFile())
这是我的输出:
/home/dotk/Dropbox/College/OOP/TP02/hw02/books.dat
/home/dotk/Dropbox/College/OOP/TP02/hw02/users.dat
/home/dotk/Dropbox/College/OOP/TP02/hw02/operations.dat
我需要更改路径吗?我希望该程序与操作系统无关,它可能会在Windows机器上进行测试。
编辑2
我更改了文件名,现在他们没有" ./"但仍然没有工作。我确认不是文件的任何其他开放流,唯一运行的是在程序的开头加载ArrayLists中的信息,但它们在之后关闭。
答案 0 :(得分:0)
我发现错误,问题是按照调用的顺序。我感觉有点愚蠢,但现在已经修好了。