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