日期:2014-05-20  浏览次数:20707 次

将单个文件压缩成zip文件
就是将程序生成的文件再压缩成zip包,命名规则是原文件名的一部分,如:123-123-123.xml to 123-123.zip 请问各位该如何处理

------解决方案--------------------
Java code

private void zip(File file) throws IOException {
        if(!file.exists())
            throw new FileNotFoundException();
        if(file.isDirectory())
            throw new FileNotFoundException();
        
        String newName = file.getName();
        if(newName.lastIndexOf('.')!=-1){
            newName = newName.substring(0, newName.lastIndexOf('.'));
        }
        
        newName += ".zip";
        
        File newFile = new File(file.getParent(),newName);
        
        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(newFile));
        
        ZipEntry ze = new ZipEntry(file.getName());
        
        out.putNextEntry(ze);
        
        FileInputStream in = new FileInputStream(file);
        
        byte[] bfs = new byte[1024];
        int rr;
        while((rr = in.read(bfs))!=-1){
            out.write(bfs, 0, rr);
        }
        in.close();
        
        
        out.flush();
        
        out.closeEntry();
        out.close();
    }