从中午开始学习压缩流的使用一直到现在才搞定压缩,最后发现居然是两个反斜杠错了 感觉都不会爱了,,,哈哈
java.util.zip包中提供了一系列的类可以来实现zip的压缩,
Zip压缩流的创建与其他的流的创建没有什么区别;例如
ZipOutputStream ops = new ZipOutputStream(new FileOutputStream("D:\\test.zip"));
ZIP输入流打开后,你可以使用getNextEntry方法来读取ZIP文件中的条目数,该方法返回一个ZipEntry对象。如果到达文件的尾部,getNextEntry返回null:
ZipEntry entry; while((entry = zin.getNextEntry()) != null) { // extract data // open output streams } |
实现单文件的压缩;
代码如下;
首先在D盘中创建要压缩的文件夹
package ZIP文件流; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectOutputStream.PutField; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * Zip格式的文件压缩 * @author Administrator * */ public class Copy2Test { public static void main(String[] args) { //单文件压缩 Copy2Txt(); } /** * 压缩单文件的方法 * 1,定义文件压缩输出流 * 2,实例化一个文件压缩的对象 * 3,创建文件输入流 * 4,将输入流写到文件压缩流中 * @throws FileNotFoundException */ public static void Copy2Txt() { try{ //1,创建文件输出时的文件 ZipOutputStream ops = new ZipOutputStream(new FileOutputStream("D:\\test.zip")); //2,创建输出文件中的对象 ZipEntry entry = new ZipEntry("ab.txt"); //创建一个文档注释 ops.setComment("Here is how we compressed in Java"); //将对象放到压缩文档中 ops.putNextEntry(entry); //3,创建文件输入流 InputStream fis = new FileInputStream("D:\\ab.txt"); // int len = 0; // while ((len = fis.read()) != -1) // ops.write(len); int len = fis.read(); while(len !=-1){ ops.write(len); len = fis.read(); } fis.close(); ops.close(); }catch(Exception e){ e.printStackTrace(); } } }
源文件与压缩后的文件
源文件中的内容
压缩文件中的内容
压缩多个文件的代码如下;
package ZIP文件流; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectOutputStream.PutField; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * Zip格式的文件压缩 * @author Administrator * */ public class Copy2Test { public static void main(String[] args) { //多文件压缩 Copy2Demo(); System.out.println("//////"); } /*** *多文件压缩 */ public static void Copy2Demo() { try { File file = new File("F:\\test"); //1,创建文件输出时的文件 ZipOutputStream zop = new ZipOutputStream(new FileOutputStream("F:\\test.zip")); zop.setComment("多文本压缩"); isFile(zop,file,""); zop.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 判断文件还是文件目录 * @param zop 输出流 * @param file 文件 * @param dir 目录名字 * @throws IOException */ private static void isFile(ZipOutputStream zop,File file,String dir) throws IOException{ //如果是目录 if(file.isDirectory()){ //将文件保存到文件数组中 File[] fil = file.listFiles(); //遍历出来 for(File files: fil ){ isFile(zop,files,dir+"\\"+file.getName()); } }else{ String entryName = null; //判断文件名是否为空 if(!"".equals(dir)){ entryName = dir+"\\"+file.getName(); } else{ entryName = file.getName(); } //根据获取到的名字创建文件对象 ZipEntry entrys = new ZipEntry(entryName); zop.putNextEntry(entrys); //创建文件输入流 InputStream fim = new FileInputStream(file); int lens =fim.read(); while(lens!=-1){ zop.write(lens); lens = fim.read(); } fim.close(); } } }
源文件与压缩文件
压缩文件中被压缩的文件
压缩文件中Testfile中的文件
相关推荐
java压缩文件成zip实现无乱码 内置类与jar包
zip 压缩 文件 Java zip 压缩 文件 Java zip 压缩 文件 Java zip 压缩 文件 Java
使用 Java 语言实现并封装的创建 ZIP 格式的压缩文件并解压到指定目录和解压 ZIP 文件到指定目录的工具类。
java解压zip压缩文件,读取压缩文件中的内容并输出到输出文件中。
java zip压缩文件 加密代码和jar包
java 生成zip压缩文件 java 生成zip压缩文件
//文件数据(待压缩文件) JButton jbAdd; //增加文件按钮 JButton jbDelete; //删除文件按钮 JButton jbZip; //压缩按钮 JTextField target; //目标文件文本域 public ZipDemo(){ super("用ZIP...
解决java zip压缩文件里面带有中文文件,在java代码解压时报错,或者无法解压问题
java 解压缩zip文件 java 解压缩zip文件 java 解压缩zip文件
java 操作Zip文件(压缩、解压、加密) zip4j-1.3.2.jar ant-1.10.6.jar
JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码
对zip文件进行解压缩工具类,以及jar包
使用java的zip压缩库 对文件和文件夹实现压缩
Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...
主要介绍了基于Java向zip压缩包追加文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java zip文件的压缩与解压缩,支持中文 使用apache的工具包可设置字符编码
用java实现文件/文件夹zip格式的压缩
Java把文件压缩成zip,粘贴在项目中即可使用
//得到待压缩文件路径名 String entryname=filename.substring(filename.lastIndexOf("\\") 1); //得到文件名 entry=new ZipEntry(entryname); //实例化条目列表 zout.putNextEntry(entry); //将ZIP条目...
应用java来压缩需要打包的文件,在系统管理中将毛哥路径或者某个文件夹压缩成zip包