Find a line in a file and remove it

后端 未结 16 1687
谎友^
谎友^ 2020-11-22 13:06

I\'m looking for a small code snippet that will find a line in file and remove that line (not content but line) but could not find. So for example I have in a file following

16条回答
  •  抹茶落季
    2020-11-22 13:57

        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();
        }
      }
    

    This I have found on the internet.

提交回复
热议问题