大连建设工业产品网站,个人工作室税收优惠政策,淮北 网站建设 有限公司,洛阳建站公司效果在java中#xff0c;主要是利用ZipEntry#xff0c;ZipInputStream和ZipOutputStream来实现zip数据压缩方式的编程方法#xff0c; 构造方法摘要ZipEntry(String name) 使用指定名称创建新的 ZIP 条目。构造方法摘要ZipInputStream(InputStream in) 创建… 在java中主要是利用ZipEntryZipInputStream和ZipOutputStream来实现zip数据压缩方式的编程方法 构造方法摘要ZipEntry(String name) 使用指定名称创建新的 ZIP 条目。构造方法摘要ZipInputStream(InputStream in) 创建新的 ZIP 输入流。构造方法摘要ZipOutputStream(OutputStream out) 创建新的 ZIP 输出流。ZipInputStream的主要方法 ZipEntrygetNextEntry() 读取下一个 ZIP 文件条目并将流定位到该条目数据的开始处。 voidcloseEntry() 关闭当前 ZIP 条目并定位流以读取下一个条目。压缩测试程序 package com.book.ch09.file;import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;public class CompressFile {public static void addFile(ZipOutputStream zipOutput, File file) throws IOException{System.out.println(正在添加文件 file.getAbsolutePath());// 每个压缩对象都为一个 ZipEntry 实例。ZipEntry zipEntry new ZipEntry(file.getName());// 将这个实例放入压缩文件中zipOutput.putNextEntry(zipEntry);// 读取文件内容FileInputStream ins new FileInputStream(file);byte[] tmp new byte[1024];int len 0;while((len ins.read(tmp)) ! -1){zipOutput.write(tmp, 0, len);}ins.close();// 关闭当前的 ZipEntry 实例zipOutput.closeEntry();}public static void main(String[] args) throws IOException{File sourceFolder new File(D:\\常用软件);File targetFile new File(D:\\zip_test.zip);// 使用 ZipOutputStream 创建压缩文件ZipOutputStream zipOutput new ZipOutputStream(new FileOutputStream(targetFile));// 列出该文件夹下所有的文件File[] subFiles sourceFolder.listFiles(new FileFilter(){public boolean accept(File pathname) {if(pathname.isFile()) return true;return false;}});System.out.println(\r\n文件压缩开始 sourceFolder.getAbsolutePath()\n\n);for(int i0; isubFiles.length; i){addFile(zipOutput, subFiles[i]);}zipOutput.close();System.out.println(\r\n文件压缩完成 targetFile.getAbsolutePath());}}运行结果 文件压缩开始D:\常用软件正在添加文件D:\常用软件\apache_2.2.4-win32-x86-no_ssl.zip正在添加文件D:\常用软件\CAJViewer7.0.zip正在添加文件D:\常用软件\CCleaner.rar正在添加文件D:\常用软件\CTeX_2.8.0.125.exe正在添加文件D:\常用软件\download正在添加文件D:\常用软件\DUBA2008_down_31_4306.exe正在添加文件D:\常用软件\DZH_INTERNET_V560w.exe正在添加文件D:\常用软件\EasyRecoveryPro-v6.20.rar正在添加文件D:\常用软件\FinalData-v2.01.rar正在添加文件D:\常用软件\FirefoxChinaEdition 2010.12.exe正在添加文件D:\常用软件\FirefoxChinaEdition-latest.exe正在添加文件D:\常用软件\fxalendar.exe............ ............文件压缩完成D:\zip_test.zip 解压缩 package com.book.ch09.file;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;public class UncompressFile {static int count 0;public static void extractFile(File path, ZipInputStream zipIns, ZipEntry zipEntry) throws IOException{File file new File(path, zipEntry.getName());System.out.println(正在释放文件 file.getAbsolutePath());FileOutputStream ous new FileOutputStream(file);byte[] tmp new byte[1024];int len 0;while((len zipIns.read(tmp)) ! -1){ous.write(tmp, 0, len);}ous.close();zipIns.closeEntry();count;}public static void main(String[] args) throws IOException{File sourceZipFile new File(c:\\zip_test.zip);File targetFolder new File(C:\\zip_test);targetFolder.mkdir();ZipInputStream zipIns new ZipInputStream(new FileInputStream(sourceZipFile));ZipEntry zipEntry zipIns.getNextEntry();while(zipEntry ! null){extractFile(targetFolder, zipIns, zipEntry);zipEntry zipIns.getNextEntry();}zipIns.close();System.out.println(\r\n文件释放完成。 count 个文件被释放。);}}