zoukankan      html  css  js  c++  java
  • java tar.gz文件生成

    /**
    * 压缩文件成Gzip格式,Linux上可使用
    * 压缩文件夹生成后缀名为".gz"的文件并下载
    * @param folderPath,要压缩的文件夹的路径
    * @param zipFilePath,压缩后文件的路径
    * @param zipFileName,压缩后文件的名称
    * @throws BizException
    * */      
    public static void CompressedFiles_Gzip(String folderPath, String targzipFilePath, String targzipFileName)   
    {   
         File srcPath =new File(folderPath);   
        int length=srcPath.listFiles().length;   
        byte[] buf = new byte[1024]; //设定读入缓冲区尺寸  
         File[] files   =   srcPath.listFiles();   
        try   
         {   
            //建立压缩文件输出流  
             FileOutputStream fout=new FileOutputStream(targzipFilePath);   
            //建立tar压缩输出流  
             TarArchiveOutputStream tout=new TarArchiveOutputStream(fout);   
            for(int i=0;i<length;i++)   
             {   
                String filename=srcPath.getPath()+File.separator+files[i].getName();   
                //打开需压缩文件作为文件输入流  
                 FileInputStream fin=new FileInputStream(filename);   //filename是文件全路径  
                 TarArchiveEntry tarEn=new TarArchiveEntry(files[i]); //此处必须使用new TarEntry(File file);  
                 tarEn.setName(files[i].getName());  //此处需重置名称,默认是带全路径的,否则打包后会带全路径  
                 tout.putArchiveEntry(tarEn);     
                int num;   
                while ((num=fin.read(buf, 0, 1024)) != -1)   
                 {   
                     tout.write(buf,0,num);   
                 }   
                 tout.closeArchiveEntry();   
                 fin.close();   
             }   
             tout.close();      
             fout.close();      
               
            //建立压缩文件输出流  
             FileOutputStream gzFile=new FileOutputStream(targzipFilePath+".gz");   
            //建立gzip压缩输出流  
             GZIPOutputStream gzout=new GZIPOutputStream(gzFile);   
            //打开需压缩文件作为文件输入流  
             FileInputStream tarin=new FileInputStream(targzipFilePath);   //targzipFilePath是文件全路径  
            int len;   
            while ((len=tarin.read(buf, 0, 1024)) != -1)
             {   
                 gzout.write(buf,0,len);   
             }
             gzout.close();
             gzFile.close();   
             tarin.close();
             
             File f = new File(targzipFilePath);
             f.deleteOnExit();
         }catch(FileNotFoundException e)   
         {   
             System.out.println(e);   
         }catch(IOException e)   
         {   
             System.out.println(e);   
         }   
    }
  • 相关阅读:
    算法练习:求字符串的最长重复子串(Java实现)
    Oracle数据库中遇到的坑
    解决Oracle死锁问题步骤
    转:Spring Cache抽象详解
    Spring MVC测试框架详解——服务端测试
    转:SpringMVC中日期格式的转换
    freemarker判断是否为空
    jQuery Pagination分页插件
    Java链式方法
    mysql强制索引和禁止某个索引
  • 原文地址:https://www.cnblogs.com/guochunyi/p/5311261.html
Copyright © 2011-2022 走看看