FileUtil 文件工具类

    /**
     * 解压缩一个文件
     * 
     * @param zipFile
     *            要解压的压缩文件
     * @param folderPath
     *            解压缩的目标目录
     * @param folderName
     *            解压缩的文件夹名称
     * @throws IOException
     *             当解压缩过程出错时抛出
     */
    public static void upZipFile(File zipFile, String folderPath,
            String folderName) throws ZipException, IOException {
        File desDir = new File(folderPath);
        if (!desDir.exists()) {
            desDir.mkdirs();
        }

        ZipFile zf = new ZipFile(zipFile);
        String fileName = "";
        for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
            ZipEntry entry = ((ZipEntry) entries.nextElement());
            InputStream in = zf.getInputStream(entry);
            fileName = entry.getName().substring(
                    entry.getName().indexOf('/') + 1);
            String str = folderPath + File.separator + folderName + "/"
                    + fileName;
            str = new String(str.getBytes("8859_1"), "GB2312");
            File desFile = new File(str);
            if (!desFile.exists()) {
                File fileParentDir = desFile.getParentFile();
                if (!fileParentDir.exists()) {
                    fileParentDir.mkdirs();
                }
                desFile.createNewFile();
            }
            OutputStream out = new FileOutputStream(desFile);
            byte buffer[] = new byte[1024];
            int realLength;
            while ((realLength = in.read(buffer)) > 0) {
                out.write(buffer, 0, realLength);
            }
            in.close();
            out.close();
        }
    }

 

posted @ 2012-12-16 17:36  ok_lanyan  阅读(431)  评论(0编辑  收藏  举报