日期:2014-05-20  浏览次数:20942 次

用java根据路径解压/压缩本地zip包
我打算用java根据路径解压/压缩本地zip包,请问应该用什么方法?


------解决方案--------------------
这个网上有现成的源代码,以前就是根据看到的一个源代码完成了你需要的功能,
可以搜索ZipEntry或者ZipOutputStream等。
------解决方案--------------------
不要使用jdk中的zip包,那个不支持中文,可以使用apache的zip包,具体使用先搜一下,很简单,要是有问题在讨论
------解决方案--------------------
做过这样的事情!
用ZIP流的话,正常,但后来发现,解压后,文件中的gif文件,无法预览。不知道是什么原因,后来想到winrar,利用控制台命令解压,这样的问题,被排除,不过又遇到一些新的麻烦。这个摸索的过程,LZ可以参加我以前写的一个博客:
http://lisliefor.blog.ccidnet.com/blog-htm-do-showone-uid-37738-type-blog-itemid-94811.html
------解决方案--------------------
不要使用jdk中的zip包,那个不支持中文,可以使用apache的zip包,具体使用先搜一下,很简单,要是有问题在讨论
___________________________________________

Apache 的 ZIP 在 Ant 中就有,使用方法和 JDK 中是一模一样的。
------解决方案--------------------
/**
* 压缩文件方法(不支持目录)
* @param args sourceFile(被压缩文件) zipFileName zip文件名(带路径)
* @throws IOException
*/
public static File zipFile(File sourceFile,String zipFileName) throws IOException
{
//ZipOutputStream 用来输出ZIP流
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFileName));
//被压缩文件输入流
FileInputStream in = new FileInputStream(sourceFile);
//定位ZIP文件中的文件位置
zipOut.putNextEntry(new ZipEntry(sourceFile.getName()));
//将 被压缩文件输入流 通过 zipOut 去写入 zip文件 ,具体位置即 putNextEntry 的定位
int b;
while ( (b = in.read()) != -1) {
zipOut.write(b);
}
in.close();
zipOut.close();
File returnFile = new File(zipFileName);
return returnFile;
}