解压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; } }
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 ImageFileService { private static final int buffer = 2048; public static void main(String[] args) { unZip("D:\\YXDoc\\20131212001.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; } }
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GBK"%> <% String path =request.getContextPath(); String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; String localPath=(String)request.getAttribute("localPath"); String fileName=(String)request.getAttribute("fileName"); localPath="D://"; fileName="12323.pdf"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> </head> <% out.clear(); out = pageContext.pushBody(); response.setContentType("application/pdf"); try { String sourcePDFPath =localPath+fileName; //判断该路径下的文件是否存在 File file = new File(sourcePDFPath); if (file.exists()){ DataOutputStream ou = new DataOutputStream(response.getOutputStream()); DataInputStream in = new DataInputStream(new FileInputStream(sourcePDFPath)); byte[] b = new byte[2048]; while ((in.read(b)) != -1){ ou.write(b); ou.flush(); } in.close(); ou.close(); }else{ out.print(sourcePDFPath + " 文件不存在!"); } }catch (Exception e) { out.println(e.getMessage()); }%> <body> </body> </html>