Я пытался выполнить удаление строк из файла, не начиная с определенной строки. Идея состояла в том, чтобы скопировать нужные строки в временный файл, удалить исходный файл и переименовать файл temp в исходный файл.Невозможно переименовать файл
Мой вопрос: я не могу переименовать файл!
tempFile.renameTo(new File(file))
или
tempFile.renameTo(inputFile)
не работают.
Может ли кто-нибудь сказать мне, что происходит не так? Вот код:
/**
* The intention is to have a method which would delete (or create
* a new file) by deleting lines starting with a particular string. *
*/
package com.dr.sort;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class RemoveLinesFromFile {
public void removeLinesStartsWith(String file, String startsWith, Boolean keepOrigFile) {
String line = null;
BufferedReader rd = null;
PrintWriter wt = null;
File tempFile = null;
try {
// Open input file
File inputFile = new File(file);
if (!inputFile.isFile()) {
System.out.println("ERROR: " + file + " is not a valid file.");
return;
}
// Create temporary file
tempFile = new File(file + "_OUTPUT");
//Read input file and Write to tempFile
rd = new BufferedReader(new FileReader(inputFile));
wt = new PrintWriter(new FileWriter(tempFile));
while ((line = rd.readLine()) != null) {
if (line.substring(0, startsWith.length()).equals(startsWith)) {
wt.println(line);
wt.flush();
}
}
rd.close();
if (!keepOrigFile) {
inputFile.delete();
if (tempFile.renameTo(new File(file))) {
System.out.println("OK");
} else {
System.out.println("NOT OK");
}
}
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
finally {
if (tempFile != null && tempFile.isFile()) {
wt.close();
}
}
}
}
Вы не сказали нам, какую ошибку вы получаете, или что именно ваш вопрос. –
Извините. Мой вопрос: я не могу переименовать файл. tempFile.renameTo (новый файл (файл)) или tempFile.renameTo (inputFile) не работает. – dRv