您的位置:首页 > 编程语言 > Java开发

java生成压缩文件示例代码

2013-11-20 16:16 1021 查看

    /**     * @desc 将源文件/文件夹生成指定格式的压缩文件,格式zip     * @param resourePath 源文件/文件夹     * @param targetPath  目的压缩文件保存路径     * @return void     * @throws Exception      */    public void compressedFile(String resourcesPath,String targetPath) throws Exception{        File resourcesFile = new File(resourcesPath);     //源文件        File targetFile = new File(targetPath);           //目的        //如果目的路径不存在,则新建        if(!targetFile.exists()){                 targetFile.mkdirs();          }        String targetName = resourcesFile.getName()+".zip";   //目的压缩文件名        FileOutputStream outputStream = new FileOutputStream(targetPath+"\\"+targetName);        ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(outputStream));        createCompressedFile(out, resourcesFile, "");        out.close();      }    /**     * @desc 生成压缩文件。     *                  如果是文件夹,则使用递归,进行文件遍历、压缩     *       如果是文件,直接压缩     * @param out  输出流     * @param file  目标文件     * @return void     * @throws Exception      */    public void createCompressedFile(ZipOutputStream out,File file,String dir) throws Exception{        //如果当前的是文件夹,则进行进一步处理        if(file.isDirectory()){            //得到文件列表信息            File[] files = file.listFiles();            //将文件夹添加到下一级打包目录            out.putNextEntry(new ZipEntry(dir+"/"));            dir = dir.length() == 0 ? "" : dir +"/";            //循环将文件夹中的文件打包            for(int i = 0 ; i < files.length ; i++){                createCompressedFile(out, files[i], dir + files[i].getName());         //递归处理            }        }        else{   //当前的是文件,打包处理            //文件输入流            FileInputStream fis = new FileInputStream(file);            out.putNextEntry(new ZipEntry(dir));            //进行写操作            int j =  0;            byte[] buffer = new byte[1024];            while((j = fis.read(buffer)) > 0){                out.write(buffer,0,j);            }            //关闭输入流            fis.close();        }    }    public static void main(String[] args){        CompressedFileUtil compressedFileUtil = new CompressedFileUtil();        try {            compressedFileUtil.compressedFile("G:\\zip", "F:\\zip");            System.out.println("压缩文件已经生成...");        } catch (Exception e) {            System.out.println("压缩文件生成失败...");            e.printStackTrace();        }    }}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  压缩文件 java