0

出力ファイルを生成する Java コードがあります。このJavaコードで実行時にこの出力ファイルを削除したい場合、削除できません。例えば:

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」を強制終了したい。javaで実行時にこの「javaw.exe」プロセスを強制終了するにはどうすればよいですか? コードで実行時に "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」ディレクトリに生成されますが、混乱を避けるために詳細は説明しません。

4

1 に答える 1