|
Do you need help with your Java programming?
Click here for instant help with your Java code. |
Remove a line from a text file
This example shows how to delete a line from a file. The method removeLineFromFile takes two parameters, the first parameter is the file to remove from and the second parameter is the content of the line to remove. A tempfile is created and written to, except for the content that matches the second parameter. This way very large files can be handled without demanding so much internal memory. The original file is then deleted and the tempfile is renamed to the original filename. For example, the file test.txt is located in the current directory and contains three lines, and we will remove the second line "bbbbb". |
aaaaa bbbbb ccccc |
import java.io.BufferedReader; import java.io.FileReader; import java.io.File; import java.io.FileWriter; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; public class FileUtil { public void removeLineFromFile(String file, String lineToRemove) { try { File inFile = new File(file); if (!inFile.isFile()) { System.out.println("Parameter is not an existing file"); return; } //Construct the new file that will later be renamed to the original filename. File tempFile = new File(inFile.getAbsolutePath() + ".tmp"); BufferedReader br = new BufferedReader(new FileReader(file)); PrintWriter pw = new PrintWriter(new FileWriter(tempFile)); String line = null; //Read from the original file and write to the new //unless content matches data to be removed. while ((line = br.readLine()) != null) { if (!line.trim().equals(lineToRemove)) { pw.println(line); pw.flush(); } } pw.close(); br.close(); //Delete the original file if (!inFile.delete()) { System.out.println("Could not delete file"); return; } //Rename the new file to the filename the original file had. if (!tempFile.renameTo(inFile)) System.out.println("Could not rename file"); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } public static void main(String[] args) { FileUtil util = new FileUtil(); util.removeLineFromFile("test.txt", "bbbbb"); } } |
The file test.txt now looks like this: |
aaaaa ccccc |
| Do you know your Java? | |
| Take a Ten-Question-Java-Quiz! | |
Search for code examples on this site
