开发者社区> 问答> 正文

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

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

展开
收起
蛮大人123 2016-03-25 16:37:54 5597 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    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);  
                    }  
                }  
            }  
        }  
    2019-07-17 19:14:40
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载