精华内容
下载资源
问答
  • java压缩文件

    2011-11-02 23:42:26
    java压缩文件 java压缩文件
    java压缩文件  java压缩文件
    展开全文
  • java 压缩文件

    2010-06-08 12:32:00
    java压缩文件及文件夹中的所有文件(一)资料收藏 2008-05-28 23:23:12 阅读261 评论0 字号:大中小 import java.io.File; import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要...

    java压缩文件及文件夹中的所有文件(一)资料收藏 2008-05-28 23:23:12 阅读261 评论0 字号:大中小
    import java.io.File;
    import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.zip.ZipInputStream;
    import java.util.zip.ZipEntry;
    public class CompressBook {
    public CompressBook() {}
    /*
         * inputFileName 输入一个文件夹
         * zipFileName 输出一个压缩文件夹
        */
        public void zip(String inputFileName) throws Exception {
             String zipFileName = "c://test.zip"; //打包后文件名字
             System.out.println(zipFileName);
             zip(zipFileName, new File(inputFileName));
         }

        private void zip(String zipFileName, File inputFile) throws Exception {
             ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
             zip(out, inputFile, "");
             System.out.println("zip done");
             out.close();
         }

        private void zip(ZipOutputStream out, File f, String base) throws Exception {
            if (f.isDirectory()) {
                File[] fl = f.listFiles();
                out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));
                base = base.length() == 0 ? "" : base + "/";
               for (int i = 0; i < fl.length; i++) {
                zip(out, fl[i], base + fl[i].getName());
              }
             }else {
                out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
                FileInputStream in = new FileInputStream(f);
               int b;
                System.out.println(base);
               while ( (b = in.read()) != -1) {
                 out.write(b);
              }
              in.close();
            }
         }

        public static void main(String [] temp){
             CompressBook book = new CompressBook();
            try {
                book.zip("c://c");//你要压缩的文件夹
             }catch (Exception ex) {
                ex.printStackTrace();
            }
         }
    }
    压缩文件代码:
    import java.io.*;
    import java.util.zip.*;//ZipOutputStream这个流在这里
    import java.util.*;

    public class ZipOutputStreamTest
    {
         public static void main(String[] args) throws Exception
         {
            File f = new File("a.jpg");
            FileInputStream fis = new FileInputStream(f);
            BufferedInputStream bis = new BufferedInputStream(fis);
           byte[] buf = new byte[1024];
           int len;
            FileOutputStream fos = new FileOutputStream(f.getName()+".zip");
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            ZipOutputStream zos = new ZipOutputStream(bos);//压缩包
            ZipEntry ze = new ZipEntry(f.getName());//这是压缩包名里的文件名
            zos.putNextEntry(ze);//写入新的 ZIP 文件条目并将流定位到条目数据的开始处

           while((len=bis.read(buf)) != -1)
           {
               zos.write(buf,0,len);
               zos.flush();
            }
            bis.close();
            zos.close();

     

    展开全文
  • Java压缩文件

    2015-11-25 13:26:58
    使用Java压缩文件,主要用到2个类,一个是java.util.zip.ZipEntry一个是java.util.zip.ZipOutputStream,用的是Java自带的压缩类,自带的类不能设置编码,有时会出现乱码的现象,所以可以使用apache的压缩类,它的...

        使用Java来压缩文件,主要用到2个类,一个是java.util.zip.ZipEntry一个是java.util.zip.ZipOutputStream,用的是Java自带的压缩类,自带的类不能设置编码,有时会出现乱码的现象,所以可以使用apache的压缩类,它的可以设置编码,由于用法差不多,所以这里讲的是Java自带的

        ZipOutputStream:代表了一个zip格式的输出流,操作与普通输出流一样

        ZipEntry:代表了zip文件中的一个目录

        下面这个程序就是简单的将一个文件压缩成zip格式的文件

    	public static void main(String[] args) throws IOException {
    		File srcFile = new File("F:\\test\\1.doc");
    		File tarFile = new File("F:\\test\\1.zip");
    		ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(tarFile));
    		BufferedInputStream in = new BufferedInputStream(new FileInputStream(srcFile));
    		zipOut.putNextEntry(new ZipEntry(srcFile.getName()));
    		byte[] buffer = new byte[1024];
    		int b = 0;
    		while ((b = in.read(buffer)) != -1) {
    			zipOut.write(buffer);
    		}
    		zipOut.close();
    		in.close();
    	}
        test文件夹里会生成一个zip文件


        看了代码,就是普通的IO操作类似,不过这里多了一步操作,就是

        zipOut.putNextEntry(new ZipEntry(srcFile.getName()));

        可以理解为在zip文件中生成名字为1.doc的文件,也就是生成zip文件后,打开zip文件后里面有一个1.doc的文件

        如果ZipEntry中的参数为 "目录1/目录1中的文件.doc",那么将生成如下结构


        也就是这个参数的就代表了文件的结构的父子关系,只要如果

        注意:如果该参数最后是以"/"结尾,那么就是一个文件夹,即上面的参数变成"目录1/目录1中的文件.doc/",那么目录1下的就不是一个doc文件了,而是一个名为"目录1中的文件.doc"的文件夹

        所以压缩文件最重要的一点就是设置了这个ZipEntry的参数,他代表了文件的结构,如果错了,那么生成的zip文件中的结构就不对了

        下面是自己写了一个压缩的代码,可以压缩文件和文件夹

    	public static void main(String[] args) throws IOException {
    		File srcFile = new File("F:\\test\\1.doc");
    		File tarFile = new File("F:\\test\\1.zip");
    		zip(srcFile, tarFile);
    	}
    	
    	
    
    	/**
    	 * @param srcFile
    	 *            需要压缩的文件的File对象
    	 * @param tarFile
    	 *            压缩好的文件的File对象
    	 * @throws IOException
    	 */
    	public static void zip(File srcFile, File tarFile) throws IOException {
    		ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(tarFile));
    		zip(srcFile, tarFile, srcFile.getName(), zipOut);
    		zipOut.close();
    	}
    
    	/**
    	 * @param srcFile
    	 *            需要压缩的文件的File对象
    	 * @param tarFile
    	 *            压缩好的文件的File对象
    	 * @param baseFileName
    	 *            父级目录名
    	 * @param zipOut
    	 *            ZipOutputStream对象
    	 * @throws IOException
    	 */
    	public static void zip(File srcFile, File tarFile, String baseFileName, ZipOutputStream zipOut) throws IOException {
    		System.out.println(baseFileName);
    		if (srcFile.isDirectory()) {// 如果是目录,遍历文件
    			File[] files = srcFile.listFiles();
    			if (files.length == 0) {//如果没有子目录,那么在zip文件中设置为文件夹
    				zipOut.putNextEntry(new ZipEntry(baseFileName + "/"));
    			}
    			for (int i = 0; i < files.length; i++) {
    				zip(files[i], tarFile, baseFileName + "/" + files[i].getName(), zipOut);
    			}
    		} else {
    			BufferedInputStream in = new BufferedInputStream(new FileInputStream(srcFile));
    			// 在zip文件中创建目录
    			zipOut.putNextEntry(new ZipEntry(baseFileName));
    			byte[] buffer = new byte[1024];
    			int b = 0;
    			while ((b = in.read(buffer)) != -1) {
    				zipOut.write(buffer);
    			}
    			zipOut.flush();
    		}
    	}

        输入输出没什么好说的,就是简单的IO操作,麻烦的是需要设置好文件目录,这一点是递归实现的

        另外,这篇文章写了有关压缩的知识,可以去看下
    http://blog.csdn.net/hanshileiai/article/details/6718375



    展开全文
  • JAVA 压缩文件

    2012-02-07 22:29:30
    压缩文件:   01 import java.io.File; 02 import java.io.FileInputStream; 03 import java.io.FileOutputStream; 04 import...
     
    

    压缩文件:

     
    01 import java.io.File;
    02 import java.io.FileInputStream;
    03 import java.io.FileOutputStream;
    04 import java.io.IOException;
    05 import java.io.InputStream;
    06 import java.nio.charset.Charset;
    07 import java.util.zip.ZipEntry;
    08 import java.util.zip.ZipOutputStream;
    09   
    10 public class ZipOutputStreamTest {
    11   
    12     public static void main(String args[]) throws IOException {
    13         test1();
    14         test2();
    15     }
    16       
    17     public static void test1() throws IOException {
    18         ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("D:\\testZip.zip"), Charset.forName("GBK"));
    19         //实例化一个名称为ab.txt的ZipEntry对象
    20         ZipEntry entry = new ZipEntry("ab.txt");
    21         //设置注释
    22         zos.setComment("zip测试for单个文件");
    23         //把生成的ZipEntry对象加入到压缩文件中,而之后往压缩文件中写入的内容都会放在这个ZipEntry对象里面
    24         zos.putNextEntry(entry);
    25         InputStream is = new FileInputStream("D:\\ab.txt");
    26         int len = 0;
    27         while ((len = is.read()) != -1)
    28             zos.write(len);
    29         is.close();
    30         zos.close();
    31     }
    32       
    33     public static void test2() throws IOException {
    34         File inFile = new File("D:\\test");
    35         ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("D:\\test.zip"), Charset.forName("GBK"));
    36         zos.setComment("多文件处理");
    37         zipFile(inFile, zos, "");
    38         zos.close();
    39     }
    40       
    41     public static void zipFile(File inFile, ZipOutputStream zos, String dir) throws IOException {
    42         if (inFile.isDirectory()) {
    43             File[] files = inFile.listFiles();
    44             for (File file:files)
    45                 zipFile(file, zos, dir + "\\" + inFile.getName());
    46         } else {
    47             String entryName = null;
    48             if (!"".equals(dir))
    49                 entryName = dir + "\\" + inFile.getName();
    50             else
    51                 entryName = inFile.getName();
    52             ZipEntry entry = new ZipEntry(entryName);
    53             zos.putNextEntry(entry);
    54             InputStream is = new FileInputStream(inFile);
    55             int len = 0;
    56             while ((len = is.read()) != -1)
    57                 zos.write(len);
    58             is.close();
    59         }
    60   
    61     }
    62       
    63 }
     
    展开全文
  • JAVA压缩文件

    2010-08-06 11:09:00
    压缩文件夹代码: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ...
  • java 压缩文件算法我知道的都试了下除了gzip还有压缩体积更小的吗java 压缩文件算法我知道的都试了下除了gzip还有压缩体积更小的吗java 压缩文件算法我知道的都试了下除了gzip还有压缩体积更小的吗java 压缩文件算法...
  • JAVA 压缩文件和解压文件 使用到Apache的一个开源Jar包ant-1.9.4.jar Java 压缩文件 public void zip(List<File> files, String zipFilepath) throws BuildException, RuntimeExceptioan { Zip zip = new Zip(); ...
  • java压缩文件工具类

    2017-09-13 13:21:21
    工具类中提供的方法有:压缩单个文件,压缩多个文件,解压文件到制定路径下。获取压缩文件的文件列表。压缩文件的文件注释。
  • java压缩文件或文件夹并导出 tozipUtil: package com.zhl.push.Utils; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java....
  • 解决 Java 压缩文件中文乱码 引入maven依赖 <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.6.5</version> </dependency>...
  • java来打包文件生成压缩文件,有两个地方会出现乱码:内容的中文乱码问题:修改sun的源码。使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,这两个类ant.jar中有,可以下载...
  • java压缩文件方法

    2019-08-07 15:26:47
    总结一下实现压缩文件的几个步骤: 1.创建压缩文件的对象(一旦创建对象,就会创建对应名称的压缩文件) 2.创建文件入口(这里传入的参数是压缩文件中的路径,可随意) 3.通过putNextEntry方法移动到入口上 4.进行你...
  • java压缩文件的程序代码,可以压缩单个文件夹,单个标准文件,多个标准文件 多个文件夹,以及文件夹和文件混合的压缩代码
  • 压缩文件 :toZip(String srcDir, OutputStream out,boolean KeepDirStructure) 删除文件:deleteFolder(File folder) /** * 压缩成ZIP 方法1 * * @param srcDir * 压缩文件夹路径 * @param out * ...
  • 在maven项目下用java压缩文件  首先 pom文件配置如下:  org.apache.ant  ant  1.8.2 然后主要的java文件 import java.io.File; import org.apache.tools.ant.Project; import org....
  • package unzip;...import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; imp
  • 例如,我想压缩存储在/Users/me/Desktop/image.jpg中的文件我做了这个方法:public static Boolean generateZipFile(ArrayList sourcesFilenames, String destinationDir, String zipFilename){// Create a buffer ...
  • 1 某文件夹下所有文件压缩(不能含文件夹) /**   * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下   * @param sourceFilePath :待压缩文件路径   * @...
  • NULL 博文链接:https://alog2012.iteye.com/blog/1616684

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,584
精华内容 6,233
关键字:

java压缩文件

java 订阅