集册 Java实例教程 解压到目录

解压到目录

欢马劈雪     最近更新时间:2020-01-02 10:19:05

468
解压到目录

/**

 * JBoss, Home of Professional Open Source.

 * Copyright 2014 Red Hat, Inc., and individual contributors

 * as indicated by the @author tags.

 *

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 * http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;/**时代Java - nowjava.com**/

import java.io.InputStream;

import java.nio.file.Files;

import java.nio.file.Path;

import java.util.zip.ZipEntry;

import java.util.zip.ZipInputStream;


public class Main{

    public static void unzipToDir(Path dir, String resourcePath)

            throws IOException {

        InputStream repoZipStream = ZipUtils.class

                .getResourceAsStream(resourcePath);

        ZipInputStream zipStream = new ZipInputStream(repoZipStream);


        ZipEntry entry;

        while ((entry = zipStream.getNextEntry()) != null) {

            if (!entry.isDirectory()) {

                unzipFile(dir, entry, zipStream);

            }
            /*
            nowjava.com 提 供
            */

        }

    }

    private static void unzipFile(Path targetDir, ZipEntry entry,

            ZipInputStream stream) throws IOException {

        String name = entry.getName();

        File outFile = new File(targetDir.toFile(), name);

        Path parent = outFile.toPath().getParent();

        if (!Files.exists(parent) && !parent.toFile().mkdirs()) {

            throw new IllegalStateException("Unable to create directory: "

                    + parent);

        }

        byte[] buffer = new byte[10000];

        if (!outFile.createNewFile()) {

        
展开阅读全文