简体   繁体   中英

Renaming and deleting files

I am writing a program to find information and remove them from a text file by making a temp file, removing the original one and then renaming the temp to the original file. So far I have achieved to write the program and it works when I compile it using the windows console, but when I try to run the same code in netbeans it does not work because it can't remove and rename the original file. I'm looking for way to solve this problem.

here is code , it works when I compile it using the windows console but not in the netbeans

import java.io.*;

public class rename {
public static String x="1123";

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() + "2.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().contains(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) {
rename util = new rename();
String jj;
util.removeLineFromFile("File.txt", x);
}
}

Humn... After closing br and pw , try setting them to null and calling System.gc() .

Reference: I can't delete a file in java

to rename

  public void rename(String old, String newpath) {
    try {
        File folder = new File(old);
        File[] listOfFiles = folder.listFiles();

        for (int i = 0; i < listOfFiles.length; i++) {

            if (listOfFiles[i].isFile()) {

                File f = new File(old + listOfFiles[i].getName());

                f.renameTo(new File(old + "\\" + newpath));

                System.out.println(old + "\\" + newpath);
            }
        }

        System.out.println("conversion is done");

    } catch (Exception ex) {
        Logger.getLogger(CVAdd.class.getName()).log(Level.SEVERE, null, ex);
    }

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM