文档章节

无纸化办公博客系列-文件打包

问题达人
 问题达人
发布于 2016/05/10 15:21
字数 280
阅读 25
收藏 0

package com.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;

/**
 * 文件打包
 * @author lanxum
 *
 */
public class CompressFile {

    /**
     * 压缩文件
     * 
     * @param srcfile
     *            File[] 需要压缩的文件列表
     * @param zipfile
     *            File 压缩后的文件
     */
    public static void zipFiles(java.io.File[] srcfile, java.io.File zipfile) {
        byte[] buf = new byte[1024];
        try {
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));
            for (int i = 0; i < srcfile.length; i++) {
                FileInputStream in = new FileInputStream(srcfile[i]);
                out.putNextEntry(new ZipEntry(srcfile[i].getName()));
                String str = srcfile[i].getName();
                int len;
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                }
                out.closeEntry();
                in.close();
            }
            out.close();
            System.out.println("压缩完成.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * zip解压缩
     * 
     * @param zipfile
     *            File 需要解压缩的文件
     * @param descDir
     *            String 解压后的目标目录
     */
    public static void unZipFiles(java.io.File zipfile, String descDir) {
        try {
            ZipFile zf = new ZipFile(zipfile);
            for (Enumeration entries = zf.getEntries(); entries.hasMoreElements();) {
                ZipEntry entry = ((ZipEntry) entries.nextElement());
                String zipEntryName = entry.getName();
                InputStream in = zf.getInputStream(entry);
                OutputStream out = new FileOutputStream(descDir + zipEntryName);
                byte[] buf1 = new byte[1024];
                int len;
                while ((len = in.read(buf1)) > 0) {
                    out.write(buf1, 0, len);
                }
                in.close();
                out.close();
                // System.out.println("解压缩完成.");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        File[] strs = new File[2];
        strs[0] = new File("D:/print.docx");
        strs[1] = new File("D:/print.docx");
        CompressFile.zipFiles(strs, new File("d:/print.zip"));

    }
}
 

© 著作权归作者所有

问题达人
粉丝 14
博文 94
码字总数 87450
作品 0
昌平
程序员
私信 提问
怎么让办公绿色化

在电子信息技术飞速发展的今天,低碳环保的无纸化办公早已是所有企业的首要之选。无纸化办公不仅节约办公成本,还能提高办公效率。作为全球OCR技术的核心厂商,ABBYY拥有世界领先的技术能力,...

ABBYY
2016/08/10
10
0
webpack4入门学习笔记(一)

系列博客链接 webpack4入门学习笔记(一) webpack4入门学习笔记(二) 代码 下载代码:github 初始化项目 创建项目 安装 安装指定版本 webpack 4+ 版本,还需要安装webpack-cli 建议本地安装web...

qfstudy
04/22
0
0
全网最贴心webpack系列教程和配套代码

webpack-demos:全网最贴心 webpack 系列教程和配套代码 Wow!全网最贴心的系列中文教程和配套代码 👇。网速过慢的朋友请移步《webpack4 系列教程 汇总》原文地址。更欢迎来我的小站看更多...

godbmw
2018/10/21
0
0
助力企业无纸化办公 纸质文档管理系统有新招

早在许多年前,就有人提出“无纸化办公”的概念,其目的在于通过科学合理的手段创建无纸化办公环境,以减少树木砍伐对生态造成的破坏。近年来,随着纸质文档管理系统等智能化软硬件的出现,无...

yunmais
2018/03/22
4
0
C++开发人脸性别识别总结

  历时一个月,终于在昨天把《C++开发人脸性别识别总结》系列博客完成了,第一篇博客发表在2015年12月29日,截止昨天2016年2月29日最后一篇完成,去除中间一个月的寒假,正好一个月,首先这...

u013088062
2016/03/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ReentrantLock的可重入特性

在自旋分布式锁实现 中我们已经分析了ReentrantLock的自旋特性,现在我们来分析一下它的可重入特性。 可重入特性其实说白了就是当获得锁的线程解锁后,重新来获取锁的时候会判断自己以前是否...

算法之名
45分钟前
6
0
js如何控制table中的某一行动态置顶

两行代码搞定: $('#'+item.roadCode).fadeOut().fadeIn();//获取到需要置顶的行 $(".table").prepend($('#'+item.roadCode)); 其中,fadeOut()方法 作用 --- 从可见到隐藏 如下: prepend(......

码妞
今天
4
0
四种解决Nginx出现403 forbidden 报错的方法

我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403, 于是查看nginx日志,路径为/var/log/nginx/error.log。打开日志发现报错Permission denied,详细报错如下: 1....

dragon_tech
今天
3
0
获取RestResultResponse返回的值

Springboot项目,需要调其他服务的接口,返回值类型是RestResultResponse 打断点的结果集是这个 打印出来的getData(): [{id=3336b624-8474-4dd9-bd5b-c7358687c877, paraNo=104, para=Postpo...

栾小糖
今天
4
0
【小学】 生成10以内的加减法

#!/usr/bin/env python# coding: utf-8from random import randrange# 题目的最大数值R_MAX = 10# 生成的题目的数量R_PAGE = 70# 生成减法列表def get_sub_list():...

Tensor丨思悟
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部