プログラム内のファイルを消去する必要があります。私の解決策は、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ブロック内のファイルを閉じると、ファイルが正しく開かれていてもリソースがリークする可能性がありますが、正しく書き込まれません。
私が見落としている他の問題は何ですか?この方法をどのように強化できますか?