Итак, я пытаюсь удалить строку данных из файла, что я успешно сделал, открыв новый файл и записав всю информацию, которая не соответствует данным, которые я хотел бы удалить. Проблема в том, что после того, как я это сделал, я хотел бы удалить свой исходный файл, а затем переименовать новый файл, исключая информацию, которую я хотел удалить, с тем же именем, что и исходный файл. Для этого я добавил код, но по какой-то причине он не работает.
public static void delete() throws IOException
{
File inputFile = new File("Elements.txt");
File tempFile = new File("myTempFile.txt");
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String element = JOptionPane.showInputDialog(null, "Enter the name of the Element you wish to delete.", "Remove an Element.", JOptionPane.INFORMATION_MESSAGE);;
String currentLine;
while((currentLine = reader.readLine()) != null) {
String trimmedLine = currentLine.trim();
if(trimmedLine.startsWith(element)) continue;
writer.write(currentLine + System.getProperty("line.separator"));
}
writer.close();
reader.close();
inputFile.delete();
tempFile.renameTo(inputFile);
JOptionPane.showMessageDialog(null, "Data has been removed from the file: Elements.txt");
}
Как вы можете видеть внизу, у меня есть следующие строки:
inputFile.delete();
tempFile.renameTo(inputFile);
Эти строки предназначены для удаления моего исходного файла (inputFile), а затем переименования моего нового файла (tempFile) в имя файла, которое было у исходного файла. Однако после запуска кода я просто получаю файл с именем «myTempFile.txt», который успешно удалил нужную мне строку данных, но мой исходный файл все еще присутствует, и он не был удален, и новый файл не был переименован в исходный файл.
Есть идеи, почему это происходит?