0

ファイルを読み込んでファイルの複製を作成したいのですが、私のコードはファイルの最後の行しか書き込みません。write()を呼び出すたびに新しい行に書き込むようにするにはどうすればよいですか。複製用に新しいファイルを作成したいので、FileWriterコンストラクターに true を追加できません。

これは私のコードです:

    //Create file reader
    BufferedReader iReader = new BufferedReader(new FileReader(args[1]));

    //Create file writer
    BufferedWriter oWriter = new BufferedWriter(new FileWriter(args[2], true));

    String strLine;
    //reading file
    int iterate = 0;
    while((strLine = iReader.readLine()) != null)  {
        instructions[iterate] = strLine;
    }

    //creating duplicate
    for(int i = 0; i < instructions.length; i++) {
        if(instructions[i] != null) {
            oWriter.write(instructions[i]);
            oWriter.newLine();
        }  else {
            break;
        }
    }

    try {
        iReader.close();
        oWriter.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
4

2 に答える 2

3

あなたは増加していませんiterate

 int iterate = 0;
 while((strLine = iReader.readLine()) != null)
{
    instructions[iterate] = strLine;
    iterate++;
}
于 2013-10-22T15:36:44.707 に答える
0

instructions配列のインデックスを更新していません。

さらに、とにかくこの方法でファイルをコピーする理由がすぐにはわかりません。なぜわざわざ行ごとに行うのですか?または、Apache Commons のようなユーティリティ クラスを使用します。

于 2013-10-22T15:36:35.023 に答える