0

JfileChooser からディレクトリを選択し、そのディレクトリを繰り返してすべてのファイルを読み込んで、見やすいように 1 つの大きな HTML ファイルに書き出します。これを実現するコードのスニペットを次に示します。

else if(arg0.getSource()==generate){
        //Create HTML report in same directory that file(s) came from
        try{

            fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            int returnval = fileChooser.showSaveDialog(this);
            if(returnval == JFileChooser.APPROVE_OPTION){
                File fileName = new File( "./report.html" );
                BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
                bw.write("<html>");
                bw.write("<body>");
                bw.write("<h1>Graded Assignment</h1>");
                bw.write("<p>");
                //for loop here that appends all the files in a directory
                File directory = new File(fileChooser.getSelectedFile().getAbsolutePath());
                for( File f : directory.listFiles() ){
                    FileInputStream fstream = new FileInputStream(f);
                    DataInputStream in = new DataInputStream(fstream);
                    BufferedReader br = new BufferedReader(new InputStreamReader(in));
                    bw.write(br.readLine() + "\n");
                }
                bw.write("</p>");
                bw.write("</body>");
                bw.write("</html>");

                bw.close();
                Desktop.getDesktop().browse(fileName.toURI());
            }
        }
        catch(FileNotFoundException fnf){
            fnf.printStackTrace();
        }
        catch(IOException io){
            io.printStackTrace();
        }

forループに到達しますが、最初のファイルは読み込まれません。ある種の AWT-EventQueue エラーが発生します。誰でもこれを再現して、何が問題なのか教えてもらえますか? ありがとう。

4

1 に答える 1