0

ディレクトリを反復処理し、各ファイルを読み取り、生成された HTML ファイルに書き出すこの関数があります。他の場所でも同じものを使用しているため、BufferedReader は正しく読み込まれているはずです。ただし、生成された HTML ファイルでは、ディレクトリ内の元のファイルから 1 行おきにデータを取得しているだけです。これを達成する方法は次のとおりです。

// Tests to see if "File" is actually a directory or file,
// then writes out the file if it passes the test
void writeFiles(File directory, BufferedWriter bw) {
    try{
        for( File file : directory.listFiles() ){
            if(!file.isDirectory()) {//is a file lets read it
                FileInputStream filestream = new FileInputStream(file);
                DataInputStream in = new DataInputStream(filestream);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));
                String buff = new String();
                bw.write("<b>////////////////////////////////</b><br/>");
                bw.write("<b>File: " + file.getName() + "</b><br/>");
                bw.write("<b>////////////////////////////////</b><br/>");
                while((buff=br.readLine()) != null){
                    bw.write(br.readLine() + "<br/>");
                }
                bw.write("`<br/>`");
                bw.write("`<br/>`");

           }else {//will make it a recursive search
               writeFiles(file, bw);
           }
        }
    }catch(FileNotFoundException fnf){
        fnf.printStackTrace();
    }
    catch(IOException io){
        io.printStackTrace();
    }
}

質問のコードの形式が悪いことをお詫びします。HTML が原因で、書式設定済みのテキストではコードが正しく表示されません。ただし、コードにファイル I/O の問題があることは間違いありません。BufferedReader なのか BufferedWriter なのか、誰にもわかりませんか? ありがとう。

4

1 に答える 1