遍历指定文件夹内文件并拼接到一起到指定文件中

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 小结

可扩展为根据不同后缀名来拼接。  

原文地址:https://www.cnblogs.com/fanbi/p/14445401.html