[转]JAVA实现文件压缩

/**创建一个压缩文件,from为文件夹路径,to为创建好后压缩文件路径*/  
public void CreateZip(String from,String to) throws IOException  
{  
List<File>list=getFiles(from);  
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(new File(to)));  
for(File f:list)  
{  
InputStream in=new FileInputStream(f);  
String name=getRelName(from,f);  
  
ZipEntry en=new ZipEntry(new File(from).getName()+"/"+name);  
en.setSize(f.length());  
  
out.putNextEntry(en);  
out.setComment("中文测试");  
  
  
int len=0;  
byte[]buffer=new byte[1024];  
while(-1!=(len=in.read(buffer)))  
{  
out.write(buffer, 0, len);  
}  
in.close();  
}  
out.close();  
}  
/**获取文件的相对路径*/  
private String getRelName(String from,File f) {  
// TODO Auto-generated method stub  
String a=f.getAbsolutePath().replace(from+"\", "");  
a=a.replace("\", "/");  
System.out.println(from+"---"+a);  
return a;  
}  
/**获取路径下所有文件,包括文件夹下的*/  
private List<File> getFiles(String sou)  
{  
List<File>list=new ArrayList<File>();  
File f=new File(sou);  
File files[]=f.listFiles();  
for(File file:files)  
{  
if(file.isFile())  
{  
list.add(file);  
}  
else  
{  
list.addAll(getFiles(file.getPath()));  
}  
}  
return list;  
}

##########################################  

转自:http://blog.csdn.net/liu149339750/article/details/7887701

##########################################

原文地址:https://www.cnblogs.com/ForeverLover/p/4242458.html