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

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

2个回答

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

     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);  
                }  
            }  
        }  
    }  
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问