为了配合申请一些软著,通常需要开发提供一些源码,所以想写一个工具替代人工拷贝,不错,之前做这件事情就是人工拷贝的,哈哈,可能通过代码管理工具也可以实现,暂时没去研究,就写了一个工具类,如下
importjava.io.BufferedWriter; importjava.io.File; importjava.io.IOException; importjava.nio.charset.StandardCharsets; importjava.nio.file.Files; importjava.nio.file.Path; importjava.nio.file.Paths; importjava.nio.file.StandardOpenOption; importjava.util.LinkedList; importjava.util.List; importjava.util.stream.Stream; publicclassExportCodeMain { publicstaticvoidmain(Stringargs[]){ StringdirLocation="C:\\code\\project\\xxx\\src\\main\\"; StringfileName="C:\\code\\project\\xxx\\sourcecode.txt"; try { List<File>files=newLinkedList<>(); fileall(newFile(dirLocation),files); if(files!=null){ //追加写模式Pathpath=Paths.get(fileName); Filefile=newFile(fileName); if(!file.exists()){ file.createNewFile(); } try (BufferedWriterwriter=Files.newBufferedWriter(path,StandardCharsets.UTF_8,StandardOpenOption.APPEND)){ files.stream().forEach(item-> { try (Stream<String>lines=Files.lines(item.toPath())) { lines.forEach(line->{ try { writer.write(line); writer.newLine(); } catch (IOExceptione) { e.printStackTrace(); } }); } catch (IOExceptione) { e.printStackTrace(); } }); }catch (Exceptione){ e.printStackTrace(); } } } catch (IOExceptione) { e.printStackTrace(); } } privatestaticvoidfileall(Filef1,List<File>fileList) { if (f1.isDirectory()) { File[] files=f1.listFiles(); for (Filefile:files) { fileall(file,fileList); } } else { fileList.add(f1); } } }
修改为自己的项目代码目录即可运行,仅供参考