java 增量打包工具
来源:互联网 发布:自动发卡平台系统源码 编辑:程序博客网 时间:2024/06/05 02:31
主要代码
import java.io.*;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;public class Main{private ConfigUtil util;private int count;private String zipName;public Main(){util = ConfigUtil.getInstance();}public static void main(String args[])throws Exception{Main t = new Main();t.doCopy();System.out.println();System.out.println((new StringBuilder("total file: ")).append(t.count).toString());System.out.println((new StringBuilder("created zip file: ")).append(t.zipName).toString());}private void doCopy()throws IOException{//读取需要打包的文件File f = new File("file.properties");BufferedReader reader = new BufferedReader(new FileReader(f));zipName = (new StringBuilder(String.valueOf(util.getDescFolder()))).append(util.getZipFileName()).toString();//准备Zip包 进行打包ZipOutputStream zipStream = new ZipOutputStream(new FileOutputStream(zipName));File temp = null;for (String line = null; (line = reader.readLine()) != null;){line = line.trim();if (line.length() != 0){if (line.startsWith(util.getSrcFolder()))line = (new StringBuilder(String.valueOf(util.getClassFolder()))).append(line.substring(util.getSrcFolder().length())).toString();if (line.endsWith(".java")){line = line.replaceFirst("\\.java", "\\.class");temp = new File(line);copySinleFile(zipStream, temp);File files[] = temp.getParentFile().listFiles();File afile[];int j = (afile = files).length;for (int i = 0; i < j; i++){File child = afile[i];if (isRelatedClassFile(child, temp))copySinleFile(zipStream, child);}} else{temp = new File(line);if (temp.isDirectory())copyChildFiles(zipStream, temp);elsecopySinleFile(zipStream, temp);}}}reader.close();zipStream.close();}private void copySinleFile(ZipOutputStream zipStream, File src)throws IOException{String desc = src.getAbsolutePath().substring(util.getRootFolder().length());zipStream.putNextEntry(new ZipEntry(desc));FileInputStream fis = new FileInputStream(src);byte buf[] = new byte[1024];for (int i = 0; (i = fis.read(buf)) != -1;)zipStream.write(buf, 0, i);zipStream.closeEntry();fis.close();count++;System.out.println((new StringBuilder("add File: ")).append(desc).toString());}private void copyChildFiles(ZipOutputStream zipStream, File folder)throws IOException{File files[] = folder.listFiles();File afile[];int j = (afile = files).length;for (int i = 0; i < j; i++){File f = afile[i];if (f.isDirectory())copyChildFiles(zipStream, f);elsecopySinleFile(zipStream, f);}}private boolean isRelatedClassFile(File child, File temp){String childName = child.getName();boolean value = false;if (childName.endsWith(".class")){childName = childName.substring(0, childName.length() - 6);String tempName = temp.getName().substring(0, temp.getName().length() - 6);value = childName.startsWith((new StringBuilder(String.valueOf(tempName))).append("$").toString());}return value;}}
0 0
- java 增量打包工具
- java本地增量打包工具
- linux gradle java增量打包工具
- ant增量编译打包java项目
- java 打包工具 ant
- java打包工具:Ant工具
- Git增量更新打包
- java打包成exe工具
- Java开源打包工具
- ant--Java工程打包工具
- java fat jar 打包工具
- 基于ant和svnkit的WebProject增量打包工具(一)
- 增量备份文件工具
- 文件增量备份工具
- 文件增量备份工具
- 利用SVN实现增量打包
- java生成exe打包工具exe4j
- jarjar:方便的java打包工具
- angular最佳实践
- javascript Date时间操作
- HibernateDao层增删改查
- Activiti自我总结
- java 多线程线程池
- java 增量打包工具
- STM32学习笔记(1):位带操作(Bit_band Operations)
- tomcat8 startup.bat启动闪退 环境变量配置正常没问题
- Jquery的同步和异步请求
- Linux七个运行级别
- Jquery toggle函数的用法
- PHP——Apache虚拟主机配置,通过域名访问本地站点
- 重构方法
- javascript中的each遍历