⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zipfile.java

📁 一个在ie实现文件上传下载的程序
💻 JAVA
字号:
package zip;

import java.io.*;
import org.apache.tools.zip.ZipOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Stack;


public class ZipFile {

	public void zip(String inputFileName,String outputFileName) throws Exception { 
		  ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outputFileName));
		  zip(out, new File(inputFileName), "");
		  System.out.println("zip done");
		  out.close();
		 }
		 private void zip(ZipOutputStream out, File f, String base) throws Exception {
		  if (f.isDirectory()) {
		   File[] fl = f.listFiles();
		   if (System.getProperty("os.name").startsWith("Windows")){
		    out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "\\"));
		    base = base.length() == 0 ? "" : base + "\\";
		   }
		   else{
		    out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));
		    base = base.length() == 0 ? "" : base + "/";
		   }
		   for (int i = 0; i < fl.length; i++) {
		    zip(out, fl[i], base + fl[i].getName());
		   }
		  }
		  else {
		   out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
		   FileInputStream in = new FileInputStream(f);
		   int b;
		   System.out.println(base);
		   while ( (b = in.read()) != -1) {
		    out.write(b);
		   }
		   in.close();
		  }
		 }



		public void unzip(String zipFileName,String outputDirectory) throws Exception{
		 try {
		  
		  
		  org.apache.tools.zip.ZipFile zipFile = new org.apache.tools.zip.ZipFile(zipFileName);
		  java.util.Enumeration e = zipFile.getEntries();
		  org.apache.tools.zip.ZipEntry zipEntry = null;
		 
		  Stack en=new Stack();
		  while(e.hasMoreElements())
		  {
			  zipEntry = (org.apache.tools.zip.ZipEntry)e.nextElement();
			  en.push(zipEntry);
		  }
		  
            
		  
		  while(!en.isEmpty()){
		  zipEntry= (org.apache.tools.zip.ZipEntry)en.pop();
		 	  
		  System.out.println("unziping "+zipEntry.getName());
		  String name=zipEntry.getName();
		  if (name.lastIndexOf("\\")==(name.length()-1)){
		  
		  name=name.substring(0,name.length()-1);
		  System.out.println("输出路径:"+outputDirectory+File.separator+name);
		  File f1=new File(outputDirectory+File.separator);
		  f1.mkdir();
		  File f=new File(outputDirectory+File.separator+name);
		  f.mkdir();
		  System.out.println("创建目录:"+outputDirectory+File.separator+name);

		  }
		  else{
		
	  
		  File f=new File(outputDirectory+File.separator+zipEntry.getName());
		  f.createNewFile();
		  InputStream in = zipFile.getInputStream(zipEntry);
		  FileOutputStream out=new FileOutputStream(f);
		  //--------解决了图片失真的情况 
		  int c;
		  byte[] by=new byte[1024];
		   while((c=in.read(by)) != -1){
		   out.write(by,0,c);
		   }
		  out.close();
		  in.close();
		  }
		 }

		}
		catch (Exception ex){
		  ex.printStackTrace();
		}
		}





}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -