Java使用I/O压缩解压文件夹

Frank在忙论文呐,,忙里偷闲写代码- - 

听到黑客又搞病毒出来了,赶紧做好防御,写病毒的人真可怕 

估计电脑+资料还没有比特币贵吧 哈哈哈

言归正传,压缩解压确实是很实用的东西,我扔两个栗子,你搬好小板凳吃着~

1. 压缩文件夹123(里面有俩文件)——> 123.zip


package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * @author Frank
 * description:压缩文件夹
 */
public class test_107 {

    public static void main(String args[]) throws IOException{ 
	FileInputStream fis = null;
	FileOutputStream fos =null;
	ZipOutputStream zos = null;
	try {
	    fos = new FileOutputStream("C:/Users/lenovo/Desktop/123.zip"); //压缩后的文件名
	    zos = new ZipOutputStream(fos);    
            File dir = new File("C:/Users/lenovo/Desktop/123");    //要压缩的文件夹名
            String path = dir.getPath();
            if(dir.isDirectory()) {
            	File lists[] = dir.listFiles();     //列出文件夹的所有文件
        	for (int i=0;i<lists.length;i++) {  //遍历压缩
        	    ZipEntry ze = new ZipEntry(path+"/"+lists[i].getName());
        	    zos.putNextEntry(ze);
        	    fis = new FileInputStream(lists[i]); 
        	    int temp = 0;  
        	    while ((temp=fis.read())!= -1) {
        		zos.write(temp);   
        	    }  
        	}  
            }
	} catch (IOException e) {
	    e.printStackTrace();
	} finally {
	    fis.close();
	    zos.closeEntry();
	    zos.close();
	} 
        System.out.print("文件压缩成功!");
    }  

}


简单的操作写成代码就成这样了

上面代码一大堆,其实就是这个意思。。。 



2. 解压文件夹123.zip  ——> 文件夹456

也很简单,直接上代码

当然 也是一大堆。所以Java这方面要改进一下,这砖搬的我累

package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

/**
 * @author Frank
 * description:解压文件夹
 */
public class test_108 {

    public static void main(String args[]) throws IOException{ 
	FileInputStream fis = null;
	ZipInputStream zis = null;
	FileOutputStream fos = null;
	ZipEntry entry = null;
	try {
	    fis = new FileInputStream("C:/Users/lenovo/Desktop/123.zip");  //等待压缩的文件名
	    zis = new ZipInputStream (fis);
	    File dir = new File("C:/Users/lenovo/Desktop/456");  //解压后的文件夹名
	    if (!dir.exists()) {
		dir.mkdirs();
	    }
	    while ((entry = zis.getNextEntry())!=null) {   //遍历解压
	        String path =entry.getName();
		File file = new File(dir,path.substring(path.lastIndexOf('/')+1));
		file.createNewFile();   //生成解压文件
		fos = new FileOutputStream(file);
		int temp = 0;  
		while ((temp=zis.read())!= -1) {
		    fos.write(temp);
		}
	    }
        } catch (IOException e) {
	    e.printStackTrace();
	} finally {
	    zis.closeEntry();
	    zis.close();
	    fos.close(); 
	} 
	System.out.print("文件解压成功!");
    }  
	
}


嗯,上面的一堆就完成了这个事,打开看一下:


没毛病!收工~

ps(为啥格式总是调不对...ecilpse写的粘上来就乱了)

 2017.5.15


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值