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 小结
可扩展为根据不同后缀名来拼接。