java实现文件自动打包成zip并下载…

来源:互联网 发布:火车票晚点查询软件 编辑:程序博客网 时间:2024/04/29 05:58

1.首先实现java多文件压缩

package main;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Test
{
    publicstatic void main(String[] args) throws Exception
    {
       byte[] buffer = new byte[1024];

       // 生成的ZIP文件名为Demo.zip
       String strZipName = "C:/Demo.zip";//生成文件的目录及命令
       ZipOutputStream out = new ZipOutputStream(newFileOutputStream(strZipName));
       // 需要同时下载的两个文件result.txt ,source.txt
       File[] file1 = { new File("C:/2.txt"), new File("C:/1.exe"), newFile("C:/3.xls")};
       for (int i = 0; i < file1.length; i++)
       {
           FileInputStream fis = new FileInputStream(file1[i]);
           out.putNextEntry(new ZipEntry(file1[i].getName()));
           int len;
           // 读入需要下载的文件的内容,打包到zip文件
           while ((len = fis.read(buffer)) > 0)
           {
               out.write(buffer, 0, len);
           }
           out.closeEntry();
           fis.close();
       }
       out.close();
       System.out.println("生成Demo.zip成功");
    }
}

2.看完说面不要问我怎么没看见下载的代码,因为我的上篇文章java通过文件流实现下载文件已经介绍了这个下载的功能,不信你看去,我没骗你吧java实现文件自动打包成zip并下载的代码,只要把刚才压缩的文件的路径放到那个方法里面就可以下载了。

3.既然下载完了,我们刚才打的压缩包就没有用了,我们可以现在就删除或者做个定时器定时删除就行了,下面就看看java是怎么实现删除文件的吧!(不要膜拜我,请叫我雷锋!)

package com.web.tool;

import java.io.File;
// @author xuxile  
//2012-07-04  
// 删除文件或目录/  
public class DeleteFileUtil{    
    //   
    publicstatic boolean delete(StringfileName){    
       File file = newFile(fileName);    
       if(!file.exists()){    
           System.out.println("删除文件失败:"+fileName+"文件不存在");    
           returnfalse;    
       }else{    
           if(file.isFile()){    
                    
               returndeleteFile(fileName);    
           }else{    
               returndeleteDirectory(fileName);    
              
          
      
        
    //   
    publicstatic boolean deleteFile(StringfileName){    //2.删除单个文件
       File file = newFile(fileName);    
       if(file.isFile() &&file.exists()){    
           file.delete();    
           System.out.println("删除单个文件"+fileName+"成功!");    
           returntrue;    
       }else{    
           System.out.println("删除单个文件"+fileName+"失败!");    
           returnfalse;    
          
      
        
    //   
    publicstatic boolean deleteDirectory(Stringdir){    
       //如果dir不以文件分隔符结尾,自动添加文件分隔符    
       if(!dir.endsWith(File.separator)){    
           dir =dir+File.separator;    
          
       File dirFile = newFile(dir);    
       //如果dir对应的文件不存在,或者不是一个目录,则退出    
       if(!dirFile.exists() ||!dirFile.isDirectory()){    
           System.out.println("删除目录失败"+dir+"目录不存在!");    
           returnfalse;    
          
       boolean flag =true;    
       //删除文件夹下的所有文件(包括子目录)    
       File[] files =dirFile.listFiles();    
       for(int i=0;i
           //删除子文件    
           if(files[i].isFile()){    
               flag =deleteFile(files[i].getAbsolutePath());    
               if(!flag){    
                   break;    
                  
              
           //删除子目录    
           else{    
               flag =deleteDirectory(files[i].getAbsolutePath());    
               if(!flag){    
                   break;    
                  
              
          
            
       if(!flag){    
           System.out.println("删除目录失败");    
           returnfalse;    
          
            
       //删除当前目录    
       if(dirFile.delete()){    
           System.out.println("删除目录"+dir+"成功!");    
           returntrue;    
       }else{    
           System.out.println("删除目录"+dir+"失败!");    
           returnfalse;    
          
      
        
    publicstatic void main(String[] args){    
       //String fileName ="g:/temp/xwz.txt";    
       //DeleteFileUtil.deleteFile(fileName);    
       String fileDir ="G:/temp/temp0/temp1";//可以是文件路径也可以是文件夹路径    
       //DeleteFileUtil.deleteDirectory(fileDir);    
       DeleteFileUtil.delete(fileDir);    
            
      
}

4.好了,现在结束了,总结一下:我没有骗你你吧至少给了你思路“先压缩,再下载,最后删除”,还有给了你全部的代码,英雄不留名,我叫活雷锋!

 

参考自:http://www.cxyclub.cn/n/26800/