我想读取文件并创建文件的副本,但我的代码只写了文件的最后一行。我如何制作,以便每当我调用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();
}
答案 0 :(得分:3)
您没有递增iterate
int iterate = 0;
while((strLine = iReader.readLine()) != null)
{
instructions[iterate] = strLine;
iterate++;
}
答案 1 :(得分:0)
您没有更新instructions
数组的索引。
此外,目前还不清楚为什么要以这种方式复制文件;为什么要一行一行呢?或者只使用实用程序类,例如Apache Commons。