【发布时间】:2019-04-10 21:53:39
【问题描述】:
由于某种原因无法删除和替换文件。
我只想从文件中删除 1 行。我找到了一种方法,方法是创建一个临时文件,然后从原始文件中逐行写入每一行,除了我要删除的行,然后用临时文件替换原始文件,但是虽然临时文件是创建的,但原始文件不能由于某种原因被删除和替换。我检查了文件没有打开。
File inputFile = new File("epafes.txt");
File tempFile = new File("epafesTemp.txt");
BufferedReader reader2 = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String lineToRemove = del;
String currentLine;
while((currentLine = reader2.readLine()) != null) {
// trim newline when comparing with lineToRemove
String trimmedLine = currentLine.trim();
if(trimmedLine.equals(lineToRemove)) continue;
writer.write(currentLine + System.getProperty("line.separator"));
}
writer.close();
reader2.close();
if (!inputFile.delete()) {
System.out.println("Could not delete file");
return;
}
//Rename the new file to the filename the original file had.
if (!tempFile.renameTo(inputFile))
System.out.println("Could not rename file");
}
【问题讨论】:
-
尝试使用 java.nio.file.Files 对象,它会抛出一个 IOException,告诉你为什么它不能被删除。
标签: java delete-file