私のプログラムでファイルを消去する必要があります。ここエラーを回避しながらファイルを開いたり、書き込みしたり、保存したりするにはどうすればよいですか?
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
が正しくファイルが欠落し、何らかの理由(初期設定していない場合は、無効persmissions私のソリューションはそうのようなことをするだろうerase()
方法を持っていることでした、など)、ブロックfinally
でブロックしようとすると、NullPointerExceptionが発生します。finallyブロックがない場合は、上記の理由でNullPointerExceptionがスローされている可能性があります。
ファイルをtryブロック内で閉じると、ファイルが正しく開かれてもリソースがリークする可能性がありますが、正しく書き込まれません。
他にどのような問題がありますか、どのようにこの方法を強化できますか?
RandomAccessFile.setLength(0)は読みやすくなる可能性があります(文字エンコーディングにBOM文字または2文字が含まれる可能性があります)。 –