我需要删除程序中的文件。我的解决方案是有一种erase()
方法可以做到这一点:
public static void erase(String string) {
FileWriter fw = null;
try {
fw = new FileWriter(string);
fw.write(new String());
} catch (IOException ie) {
e.printStackTrace();
} finally {
fw.flush();
fw.close();
}
}
这里有几个问题:
如果
fw
没有正确初始化(无论出于何种原因,丢失文件,无效权限等),那么当我尝试在finally
块中关闭它时,就会出现 NullPointerException。如果我没有 finally 块,那么出于上述原因,我可能会抛出 NullPointerException。
如果我关闭 try 块内的文件,那么如果文件正确打开但没有正确写入,我可能会泄漏资源。
我还忽略了哪些其他问题,如何强化这种方法?