Hello my code basically delete the empty lines from txt file, but i want at the end temp file take the originals name.
String inputFileName = "src/inware/users.txt";
String outputFileName = "src/inware/usersT.txt";
try (BufferedReader inputFile = new BufferedReader(new FileReader(inputFileName));
PrintWriter outputFile = new PrintWriter(new FileWriter(outputFileName))) {
String lineOfText;
while ((lineOfText = inputFile.readLine()) != null) {
lineOfText = lineOfText.trim();
if (!lineOfText.isEmpty()) {
outputFile.println(lineOfText);
}
}
inputFile.close();
outputFile.close();
inputFile.delete();
outputFile.renameTo(inputFile);
} catch (IOException ex) {
Logger.getLogger(ManageStudentController.class.getName()).log(Level.SEVERE, null, ex);
}
I try
inputFile.delete();
outputFile.renameTo(inputFile);
But is not working... Any solution??
I found better solution that fix my problem:
Path p = Paths.get("src", "inware", "users.txt");
try {
Path tempFile = Files.createTempFile(p.getParent(), "usersTemp", ".txt");
try (BufferedReader in = Files.newBufferedReader(p);
PrintWriter out = new PrintWriter(Files.newBufferedWriter(tempFile))) {
for (String line; (line = in.readLine()) != null;) {
line = line.trim();
if (!line.isEmpty()) {
out.println(line);
}
}
}
Files.copy(tempFile, p, StandardCopyOption.REPLACE_EXISTING);
Files.delete(tempFile);
} catch (IOException ex) {
Logger.getLogger(ManageStudentController.class.getName()).log(Level.SEVERE, null, ex);
}