最近有个需求是加载多个文件内容,将每个文件内容保存到数组中去,最后将数组的内容返回到控制台或者合并成一个新文件。
将小文件合并到一个大文件,我相信很多小伙伴的传统做法是将每个文件读出并写入到文件当中,但是当文件数量过于庞大时,并且在保存到一个大文件前我们可能存在对文件的操作(比如说压缩)时,我建议先把文件保存到一个数组中。 实现方法代码如下:
public static void loadFiles(File filePath,File destPath) throws IOException {
File[] files = filePath.listFiles();
int length = files.length;
StringBuilder result = new StringBuilder();
String[] strings = new String[length];
for (int i = 0;i<length;i++) {
strings[i] = null;
BufferedReader bufferedReader = new BufferedReader(new FileReader(files[i]));
while ((strings[i]=bufferedReader.readLine())!=null){
result.append(strings[i]+"\n");
}
bufferedReader.close();
}
System.out.println(result);
//创建输入流:
//将result转换为String类型写入到文件
BufferedWriter writer = new BufferedWriter(new FileWriter(destPath));
writer.write(String.valueOf(result));
//记得关闭资源,不关闭资源导致目标文件没有内容
writer.close();
}