import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.List; public class TestMain { //private static final String BASE_PATH = "C:\\Users\\lWX197928\\Desktop\\新建文件夹\\素材1"; private static final String BASE_PATH = "C:\\Users\\lWX197928\\Desktop\\新建文件夹\\supporte-parent123"; private static final String OUT_BASE_PATH = "C:\\Users\\lWX197928\\Desktop\\新建文件夹"; private static final String START_WRITE = "start_write "; private static final String END_WRITE = "end_write "; public static void main(String[] args) throws Exception { System.out.println("start"); //collectAllSql(); fenjie(); System.out.println("end"); } private static void collectAllSql() throws Exception{ File outputSqlBaseFile = new File(BASE_PATH); File collectAllSql = new File(OUT_BASE_PATH,"collectAll.txt"); List<File> sqlFile = listAllFiles(outputSqlBaseFile); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(collectAllSql), "utf-8")); for (File file : sqlFile) { BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(file), "utf-8")); bw.write(START_WRITE + file.getAbsolutePath().substring(BASE_PATH.length()) +"\n"); String str = ""; while((str = br.readLine()) != null){ bw.write(str); bw.write("\n"); } br.close(); bw.write(END_WRITE + file.getAbsolutePath().substring(BASE_PATH.length()) + "\n"); } bw.close(); } private static List<File> listAllFiles(File file){ List<File> resultFileList = new ArrayList<File>(); if (file.isFile()) { resultFileList.add(file); }else{ File[] fils = file.listFiles(); for (File temp : fils) { resultFileList.addAll(listAllFiles(temp)); } } return resultFileList; } private static void fenjie() throws Exception{ File collectAllSql = new File(OUT_BASE_PATH,"collectAll.txt"); BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(collectAllSql),"UTF-8")); BufferedWriter bw = null; String str = ""; while((str = br.readLine()) != null){ if(str.startsWith(START_WRITE)){ if (bw != null) { bw.close(); bw = null; } File file = new File(BASE_PATH,str.substring(START_WRITE.length())); File parentFile = new File(file.getParent()); if (!parentFile.exists()) { parentFile.mkdirs(); } bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(file))); }else if(str.startsWith(END_WRITE)){ if (bw != null) { bw.close(); bw = null; } }else{ if(bw != null){ bw.write(str + "\n"); } } } br.close(); } }