0

一時ファイルを作成し、元のファイルを削除してから一時ファイルの名前を元のファイルに変更することにより、情報を検索してテキスト ファイルから削除するプログラムを作成しています。これまでのところ、プログラムを作成することができ、Windows コンソールを使用してコンパイルすると機能しますが、netbeans で同じコードを実行しようとすると、元のファイルを削除して名前を変更できないため、機能しません。この問題を解決する方法を探しています。

これがコードです。Windowsコンソールを使用してコンパイルすると機能しますが、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);
}
}
4

2 に答える 2

0

うーん...brとを閉じた後pw、 に設定して nullを呼び出してみてくださいSystem.gc()

参考:Javaでファイルを削除できません

于 2012-06-17T14:40:23.637 に答える