下面实现的功能是zip文件中的图像文件解压到当前目录下,用jdk自带的处理zip文件的代码处理的,但是不能处理中文名称的文件,要不然就会出错。
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipInputStream;
-
- public class UnZip
- {
- private static final int buffer = 2048;
-
- public static void main(String[] args)
- {
- unZip("D:\\ss\\test.zip");
- }
-
- public static void unZip(String path)
- {
- int count = -1;
- int index = -1;
-
- String savepath = "";
- boolean flag = false;
-
- savepath = path.substring(0, path.lastIndexOf("\\")) + "\\";
-
- try
- {
- BufferedOutputStream bos = null;
- ZipEntry entry = null;
- FileInputStream fis = new FileInputStream(path);
- ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
-
- while((entry = zis.getNextEntry()) != null)
- {
- byte data[] = new byte[buffer];
-
- String temp = entry.getName();
-
- flag = isPics(temp);
- if(!flag)
- continue;
-
- index = temp.lastIndexOf("/");
- if(index > -1)
- temp = temp.substring(index+1);
- temp = savepath + temp;
-
- File f = new File(temp);
- f.createNewFile();
-
- FileOutputStream fos = new FileOutputStream(f);
- bos = new BufferedOutputStream(fos, buffer);
-
- while((count = zis.read(data, 0, buffer)) != -1)
- {
- bos.write(data, 0, count);
- }
-
- bos.flush();
- bos.close();
- }
-
- zis.close();
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public static boolean isPics(String filename)
- {
- boolean flag = false;
-
- if(filename.endsWith(".jpg") || filename.endsWith(".gif") || filename.endsWith(".bmp") || filename.endsWith(".png"))
- flag = true;
-
- return flag;
- }
- }
下面是用的apache的zip文件处理包进行处理的,可以处理中文名称的文件,功能跟上面的一样。
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.Enumeration;
-
- import org.apache.tools.zip.ZipEntry;
- import org.apache.tools.zip.ZipFile;
-
- public class UnZip2
- {
- private static final int buffer = 2048;
-
- public static void main(String[] args)
- {
- unZip("D:\\ss\\test.zip");
- }
-
- public static void unZip(String path)
- {
- int count = -1;
- int index = -1;
- String savepath = "";
- boolean flag = false;
-
- File file = null;
- InputStream is = null;
- FileOutputStream fos = null;
- BufferedOutputStream bos = null;
-
- savepath = path.substring(0, path.lastIndexOf("\\")) + "\\";
-
- try
- {
- ZipFile zipFile = new ZipFile(path);
-
- Enumeration<?> entries = zipFile.getEntries();
-
- while(entries.hasMoreElements())
- {
- byte buf[] = new byte[buffer];
-
- ZipEntry entry = (ZipEntry)entries.nextElement();
-
- String filename = entry.getName();
- index = filename.lastIndexOf("/");
- if(index > -1)
- filename = filename.substring(index+1);
-
- filename = savepath + filename;
-
- flag = isPics(filename);
- if(!flag)
- continue;
-
- file = new File(filename);
- file.createNewFile();
-
- is = zipFile.getInputStream(entry);
-
- fos = new FileOutputStream(file);
- bos = new BufferedOutputStream(fos, buffer);
-
- while((count = is.read(buf)) > -1)
- {
- bos.write(buf, 0, count );
- }
-
- fos.close();
-
- is.close();
- }
-
- zipFile.close();
-
- }catch(IOException ioe){
- ioe.printStackTrace();
- }
- }
-
- public static boolean isPics(String filename)
- {
- boolean flag = false;
-
- if(filename.endsWith(".jpg") || filename.endsWith(".gif") || filename.endsWith(".bmp") || filename.endsWith(".png"))
- flag = true;
-
- return flag;
- }
- }
Java解压缩zip文件,布布扣,bubuko.com
Java解压缩zip文件
原文:http://www.cnblogs.com/smilesmile/p/3833986.html