0

我想读入一个文件并创建一个文件的副本,但我的代码只写了文件的最后一行。我该如何做,以便每当我打电话时write(),它都会写入一个新行。我想为副本创建一个新文件,因此无法将 true 添加到FileWriter构造函数。

这是我的代码:

    //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 回答