【发布时间】:2019-02-25 17:19:28
【问题描述】:
我正在尝试修复我正在编写的程序的一部分,其目的是读取一个文本文件并将其内容放入一个新的文本文件,其次数等于写入的最后一行的整数文本文件。当我检查我的输出时,而不是
abcd
efgh
ijkl
mnop
abcd
efgh
ijkl
mnop
我来了
abcd
abcd
efgh
efgh
ijkl
ijkl
mnop
mnop
我认为我可以使用一对嵌套的 for 循环来做到这一点,但第二个结果是我最终得到的。我将在下面粘贴我制作这些循环的代码部分。
public static void main(String[] args) throws IOException
{
BufferedReader read = new BufferedReader(new FileReader("src/MyPackage/sourcefile.txt"));
File copy = new File("copy.txt");
BufferedWriter write = new BufferedWriter(new FileWriter(copy));
List<String> copiedLines = new ArrayList<>();
String line;
while ((line = read.readLine()) != null)
{
copiedLines.add(line);
}
int numberOfCopies = copiedLines.size() - 1;
int runCopy;
runCopy = Integer.parseInt (copiedLines.get(copiedLines.size()-1));
for (int j=0; j < runCopy; j++)
{
for (int k=0; k < numberOfCopies; k++)
{
write.write(line);
write.newLine();
}
}
write.close();
read.close();
}
}
我很困惑为什么我的数组将元素 0 写入新文件所需的次数,然后移动到元素 1 等等,而我认为它会写入元素 0,然后是元素 1,依此类推,然后循环外循环的第二次迭代返回到元素零。我是否在循环设置中遗漏了一些明显的东西?
【问题讨论】: