Я пытаюсь переписать содержимое файла, создав временный файл, манипулируя текстом, а затем удалив оригинал, чтобы заменить его на temp. Вот метод:Как заменить файл на Java
private void deleteLine(String lineToRemove){
File inputFile = new File("./src/class1.txt");
File tempFile = new File("./src/tempFile.txt");
BufferedReader reader;
reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer;
writer = new BufferedWriter(new FileWriter(tempFile));
String currentLine;
while((currentLine = reader.readLine()) != null) {
if(!currentLine.trim().equals(lineToRemove)){
writer.write(currentLine + System.getProperty("line.separator"));
}
}
writer.close();
reader.close();
System.out.println("Input to temp1: " + tempFile.renameTo(inputFile));
}
При тестировании этого метода, я обнаружил, что все работает, как предполагалось в течение последних двух строк, которые возвращают ложным исключение. Мой файл class1.txt существует, когда метод запускается, но tempFile.txt этого не делает.
Почему вы используете два файл? Вы можете просто заменить строку (lineToRemove) пустой строкой ("") – pilkington
У вас есть достаточно прав на файл ./src/class1.txt? В основном, система не может переопределить файл из-за отсутствия разрешения на запись. –
Да, у меня достаточно разрешений. Как я уже сказал, я могу записать в файл, но функции delete и replace возвращают false. – Romulus3799