出力ファイルを生成するJavaコードがあります。このJavaコードで実行時にこの出力ファイルを削除したい場合、削除することはできません。例:実行時にjavaのjavaw.exeを削除するには
File file2= new File("D:\\eclipse-jee-mars-R-win32-x86_64\\eclipse\\output.txt");
if(file2.delete()){
System.out.println(file2.getName() + " is deleted!");
}
else{
System.out.println("Delete operation is failed.");
}
このコードは機能しません。 ( "output.txt"ファイルはこのディレクトリに生成され、フォルダ内に表示されます)
実際には、Windowsフォルダで削除したいときは削除できず、このエラーが発生します。私は英語に翻訳します。
私は、タスクマネージャで「javaw.exeの」プロセスを強制終了した場合、私は、フォルダにこのファイルを削除することができます。 私の質問は、どうすればこの問題を解決できますか?私はこのファイルを削除することができるように、Javaで実行時に "javaw.exe"を強制終了したい。この「javaw.exe」プロセスをjavaの実行時に強制終了するには?実行時に "javaw.exe"プロセスをコード内で終了すると、別の問題が発生しますか?
この出力ファイルはどのように生成されますか?
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.io.FileWriter;
public class code{
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader(args[0])))
{
int lines = 0;
while (br.readLine() != null) lines++; // to get text's number of lines
String sCurrentLine;
BufferedReader br2 = new BufferedReader(new FileReader(args[0])); //to read and sort the text
String[] array; //create a new array
array = new String[lines];
int i=0;
while ((sCurrentLine = br2.readLine()) != null) {//fill array with text content
array[i] = sCurrentLine;
i++;
}
Arrays.sort(array); //sort array
FileWriter fw = new FileWriter("output.txt");
for (i = 0; i < array.length; i++) { //write content of the array to file
fw.write(array[i] + "\n");
}
fw.close();
System.out.println("Process is finished.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
実際、JSPを使用してJavaコードをオンラインでコンパイル/実行するWebアプリケーションを開発しています。私はすべての部分を共有していませんでした。なぜなら、私のコードのすべての部分を共有するのは分かりません。このコードは出力ファイルを生成し、入力ファイルを取り出し、新しい "output.txt"ファイルをソートして作成します。私のJSPでこのファイルを削除したいのですが、javaw.exeがまだ実行されているため、削除できませんでした。
出力ファイルは "D:\ eclipse-jee-mars-R-win32-x86_64 \ eclipse"ディレクトリに生成されますが、混乱を避けるために詳細を説明しません。
このコードはどのように生成されますか? – Berger
あなたのプログラムの最後にSystem.exit(int i)を使わなければならないかもしれませんか? – mrbela
良い質問、使用して FileWriter fw = new FileWriter( "output.txt");用 \t \t \t(i = 0; I