Java实现任意文件及文件夹压缩和解压功能

上传人:博****1 文档编号:504434712 上传时间:2023-04-04 格式:DOC 页数:4 大小:29KB
返回 下载 相关 举报
Java实现任意文件及文件夹压缩和解压功能_第1页
第1页 / 共4页
Java实现任意文件及文件夹压缩和解压功能_第2页
第2页 / 共4页
Java实现任意文件及文件夹压缩和解压功能_第3页
第3页 / 共4页
Java实现任意文件及文件夹压缩和解压功能_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java实现任意文件及文件夹压缩和解压功能》由会员分享,可在线阅读,更多相关《Java实现任意文件及文件夹压缩和解压功能(4页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! Java实现任意文件及文件夹 压缩和解压功能 -/*主程序部分*/import java.io.File;import java.io.IOException;public class ZipExample public static void main(String args) throws IOException /*解压文件*/File inFile = new File(testzip.zip);/File outFile = new File(out);/ZipTool.unzip(inFile, outFile);/*压缩文件及目录*

2、/File files =new File(a),new File(document),new File(lib),new File(t3.text);File targetFile = new File(testzip.zip);ZipTool.zip(files,targetFile);/*工具类部分*/import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOExceptio

3、n;import java.io.InputStream;import java.util.ArrayList;import java.util.Arrays;import java.util.Enumeration;import java.util.LinkedList;import java.util.List;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipFile;import org.apache.tools.zip.ZipOutputStream;public class ZipTool /*解

4、压文件 * throws IOException */public static void unzip(File inFile,File outFile) throws IOException ZipFile zipFile = new ZipFile(inFile, GBK);Enumeration em = zipFile.getEntries();byte buf = new byte1024*1024;while(em.hasMoreElements()ZipEntry ze = em.nextElement();File outItemFile = new File(outFile,

5、ze.getName();if(ze.isDirectory()outItemFile.mkdirs();elseInputStream is = zipFile.getInputStream(ze);tryoutFile(outItemFile,is,buf); finallyis.close();private static void outFile(File outItemFile, InputStream is, byte buf) throws IOException outItemFile.getParentFile().mkdirs();FileOutputStream fos

6、= new FileOutputStream(outItemFile);tryint len;while(len=is.read(buf)!=-1)fos.write(buf, 0, len); finallyfos.close();/*压缩文件*/public static void zip(File files,File targetFile) throws IOExceptionfiles = toAbs(files);/String parentPath = files0.getAbsoluteFile().getParent();targetFile = targetFile.get

7、AbsoluteFile();/得到绝对路径String parentPath = files0.getParent()+;/得到父路径/System.out.println(targetFile );/System.out.println(files0.toString().replace(parentPath, );files = eachFiles(files);ZipOutputStream zos = new ZipOutputStream(targetFile);zos.setEncoding(GBK);trybyte buf = new byte1024*1024;for(Fil

8、e f:files)/System.out.println(f);zipFile(f,zos,parentPath,buf); finallyzos.close();private static void zipFile(File f, ZipOutputStream zos, String parentPath, byte buf) throws IOException String filename = f.toString().replace(parentPath, );if(f.isDirectory()/关键filename+=/;ZipEntry ze = new ZipEntry

9、(filename);zos.putNextEntry(ze);tryif(f.isFile()doZip(f,zos,buf);finallyzos.closeEntry();private static void doZip(File f, ZipOutputStream zos, byte buf) throws IOException FileInputStream fis = new FileInputStream(f);int len;trywhile(len=fis.read(buf)!=-1)zos.write(buf, 0, len);finallyfis.close();p

10、rivate static File eachFiles(File files) List list = new ArrayList();LinkedList tasks = new LinkedList(Arrays.asList(files);while( !tasks.isEmpty() ) /System.out.println(tasks);File task = tasks.remove();list.add(task);System.out.println(task+-开始);if( !task.isDirectory() ) System.out.println(task+-wen结束);continue;for( File c : task.listFiles() ) tasks.add(c);System.out.println(task+-结束);return list.toArray(new File0);private static File toAbs(File files) ArrayList list = new ArrayList();for(File f:files)list.add(f.getAbsoluteFile();return list.toArray(new File0); /

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号