zhaohaibo_1988
呐些過往
采纳率5.9%
2015-12-24 01:25

java多个文件压缩成zip包,并删掉源文件

一个文件夹下有txt文件,csv文件,zip文件,怎么将该文件夹下的所有csv文件压缩成zip包,并删掉原始的csv文件,大神能不能给个例子看一下,谢谢了。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • baokx 一缕清风007 6年前
         public static void fileToZip(String sourceFilePath){  
            File sourceFile = new File(sourceFilePath);  
            FileInputStream fis = null;  
            BufferedInputStream bis = null;  
            FileOutputStream fos = null;  
            ZipOutputStream zos = null;  
    
            if(sourceFile.exists() == false){  
                System.out.println("文件目录:"+sourceFilePath+"不存在.");  
            }else{  
                try {  
                    File zipFile = new File(sourceFilePath + File.separator + "cvsZip.zip");  
                    if(zipFile.exists()){  
                       zipFile.delete();
                    }else{  
                        File[] sourceFiles = sourceFile.listFiles();
                        if(sourceFiles != null){
                            fos = new FileOutputStream(zipFile);  
                            zos = new ZipOutputStream(new BufferedOutputStream(fos));  
                            byte[] bufs = new byte[1024*10];  
                            for(int i=0;i<sourceFiles.length;i++){
                                if(sourceFiles[i].getName().endsWith(".cvs")){
                                    //创建ZIP实体,并添加进压缩包  
                                    ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());  
                                    zos.putNextEntry(zipEntry);  
                                    //读取待压缩的文件并写进压缩包里  
                                    fis = new FileInputStream(sourceFiles[i]);  
                                    bis = new BufferedInputStream(fis, 1024*10);  
                                    int read = 0;  
                                    while((read=bis.read(bufs, 0, 1024*10)) != -1){  
                                        zos.write(bufs,0,read);  
                                    }
                                    //删除文件
                                    sourceFiles[i].delete();
                                }
                            }
                        }
                    }  
                } catch (FileNotFoundException e) {  
                    e.printStackTrace();  
                    throw new RuntimeException(e);  
                } catch (IOException e) {  
                    e.printStackTrace();  
                    throw new RuntimeException(e);  
                } finally{  
                    //关闭流  
                    try {  
                        if(null != bis) bis.close();  
                        if(null != zos) zos.close();  
                    } catch (IOException e) {  
                        e.printStackTrace();  
                        throw new RuntimeException(e);  
                    }  
                }  
            }  
        }  
    
    点赞 1 评论 复制链接分享
  • qq_33490604 qq_33490604 6年前

    这么专业的问题,路过,同求

    点赞 评论 复制链接分享

相关推荐