このメソッドは、.txtファイルの最後の行を取得し、その行なしで新しい一時ファイルを作成します。しかし、削除したい行がある.txtを削除しようとすると、何らかの理由で削除できない(一時ファイルの名前を変更できる)。これはコードです:ファイルを削除できませんJava
void removeFromLocal() throws IOException {
String lineToRemove = getLastLine();
File inputFile = new File("nexLog.txt");
File tempFile = new File("TempnexLog.txt");
BufferedReader reader = null;
BufferedWriter writer = null;
try {
reader = new BufferedReader(new FileReader(inputFile));
writer = new BufferedWriter(new FileWriter(tempFile));
String currentLine;
int i = 0;
while ((currentLine = reader.readLine()) != null) {
i++;
String trimmedLine = currentLine.trim();
if (!trimmedLine.equals(lineToRemove)) {
if (i != 1) {
writer.newLine();
}
writer.write(currentLine);
}
}
reader.close();
reader = null;
writer.flush();
writer.close();
writer = null;
System.gc();
inputFile.setWritable(true);
if (!inputFile.delete()) {
System.out.println("Could not delete file");
return;
}
if (!tempFile.renameTo(inputFile)) {
System.out.println("Could not rename file");
}
//boolean successful = tempFile.renameTo(inputFile);
} catch (IOException ex) {
Logger.getLogger(dropLog.class.getName()).log(Level.SEVERE, null, ex);
}
}
面白いが、私は一度メソッドを呼び出すボタンを押すと、何も」、(「ファイルを削除できませんでした」)私が手にそれが正常に動作し二回目と第三の起こらないということですいただきました!ファイルの名前を変更できませんでした "。
「最終的に」ブロックに慣れてください。それは、あなたが右と明確な方法でファイルを閉じるのに役立ちます。 – Jagger