1 前言
遍历指定文件夹内文件并拼接到一起到指定文件中。仅作记录使用。
2 代码
public static ArrayList<String> joinFiles(String destDir,String destFile) {
ArrayList<String> files = getFolderFiles(destDir);
try {
FileWriter fileWriter = new FileWriter(destFile, true);
for (int i = 0; i < files.size(); i++) {
String temp = readFile(files.get(i));
fileWriter.write(temp);
}
fileWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static ArrayList<String> getFolderFiles(String path) {
File file = new File(path);
LinkedList<File> list = new LinkedList<>();
ArrayList<String> arrayList = new ArrayList<>();
if (file.exists()) {
if (null == file.listFiles()) {
return null;
}
list.addAll(Arrays.asList(file.listFiles()));
}
for (int i = 0; i < list.size(); i++) {
arrayList.add(list.get(i).getAbsolutePath());
}
return arrayList;
}
public static String readFile(String path) {
File file = new File(path);
StringBuilder result = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));//构造一个BufferedReader类来读取文件
String s = null;
while ((s = br.readLine()) != null) {//使用readLine方法,一次读一行
result.append(System.lineSeparator() + s);
////该写法,会去除换行
//result.append(tempStr);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return result.toString();
}
public static void main(String[] args) {
String dir = "D:\tmp\files";
String dest = "D:\tmp\files\output.java";
joinFiles(dir,dest);
}
3 小结
可扩展为根据不同后缀名来拼接。