如何使用循环将多个文件的内容附加到一个目标文件

时间:2017-05-10 10:52:42

标签: java arrays

我正在尝试使用循环将多个文件的内容附加到一个目标文件。以下是我的代码。每次覆盖文件而不是附加。

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();
}

2 个答案:

答案 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();

代码未经测试,但已编译。解决方案可能类似。