我正在尝试使用循环将多个文件的内容附加到一个目标文件。以下是我的代码。每次覆盖文件而不是附加。
File[] directoryArr = new File[4];
directoryArr[0] = new File("...file path");
directoryArr[1] = new File("...file path");
directoryArr[2] = new File("...file path");
directoryArr[3] = new File("...file path");
File[] ListOfFiles = null;
for(int count = 0; count < directoryArr.length; count++)
ListOfFiles = directoryArr[count].listFiles();
}
答案 0 :(得分:1)
您可能想要创建ArrayList
并将所有文件阵列添加到其中。
List<File[]> myList = new ArrayList<>();
for(int count = 0; count < directoryArr.length; count++)
{
myList.add(directoryArr[count].listFiles());
}
另一种选择是拥有一个多维数组,其中ListOfFiles
的每个元素都可以存储另一个文件数组。但是,我不建议采用这条路径。
答案 1 :(得分:1)
解决方案更新: 所以:
File[] directoryArr = new File[4];
directoryArr[0] = new File("...file path");
directoryArr[1] = new File("...file path");
directoryArr[2] = new File("...file path");
directoryArr[3] = new File("...file path");
List<File> myList = new ArrayList<>();
for(int count=0;count<directoryArr.length;count++){
myList.addAll(Arrays.asList(directoryArr[count].listFiles()));
}
File out = new File("file-path.out");
out.createNewFile();
BufferedWriter os = new BufferedWriter(new FileWriter(out));
for(File f : myList) {
BufferedReader is = new BufferedReader(new FileReader(f));
String line;
while ((line = is.readLine()) != null) {
os.write(line);
os.write("\n");
}
os.flush();
is.close();
}
os.close();
代码未经测试,但已编译。解决方案可能类似。