public static void main(String[] args) { File file = new File("C:\\Users\\Administrator\\Desktop\\aa\\sdcbz.slpk");//当前压缩文件 ZipInputStream zin;//创建ZipInputStream对象 try { ZipFile zipFile = new ZipFile(file);//创建压缩文件对象 zin = new ZipInputStream(new FileInputStream(file));//实例化对象,指明要解压的文件 ZipEntry entry ; while (((entry=zin.getNextEntry())!=null)&& !entry.isDirectory()){//如果entry不为空,并不在同一个目录下 File tmp = null; tmp = new File("C:\\Users\\Administrator\\Desktop\\aa\\" + entry.getName());//解压出的文件路径 if (!tmp.exists()){//如果文件不存在 tmp.getParentFile().mkdirs();//创建文件父类文件夹路径 OutputStream os = new FileOutputStream(tmp);//将文件目录中的文件放入输出流 //用输入流读取压缩文件中制定目录中的文件 InputStream in = zipFile.getInputStream(entry); int count = 0; while ((count = in.read())!=-1){//如有输入流可以读取到数值 os.write(count);//输出流写入 } os.close(); in.close(); } zin.closeEntry(); System.out.println(entry.getName()+"解压成功"); } zin.close(); } catch (IOException e) { e.printStackTrace(); } }