龙空技术网

java对文件进行解压操作

全栈vs架构师之路 184

前言:

目前看官们对“java 解压zip格式字符串”都比较关注,小伙伴们都需要分析一些“java 解压zip格式字符串”的相关资讯。那么小编在网摘上汇集了一些关于“java 解压zip格式字符串””的相关资讯,希望我们能喜欢,小伙伴们一起来学习一下吧!

每天分享java小知识 小干活,欢迎关注转发评论交流,每天一点进步!

package com.zldc.oaToKnowledgePlugin.util;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.Enumeration;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import org.springframework.util.StringUtils;/** * 解压Zip文件工具类 *  * @author pzx *  */public class ZipUtil {	private static final int buffer = 2048;	/**	 * @param path 文件路径	 * @param savePath 要解压到路径	 * @param reName 解压后的文件名称	 * @return	 */	public static boolean unZip(String path, String savePath, String reName) {		int count = -1;		File file = null;		InputStream is = null;		FileOutputStream fos = null;		BufferedOutputStream bos = null;		File savepathFile = new File(savePath); // 创建保存目录		if (!savepathFile.exists()) {			savepathFile.mkdirs();		}		ZipFile zipFile = null;		try {			zipFile = new ZipFile(path);			Enumeration<?> entries = zipFile.entries();			while (entries.hasMoreElements()) {				byte buf[] = new byte[buffer];				ZipEntry entry = (ZipEntry) entries.nextElement();				String filename = entry.getName().substring(entry.getName().lastIndexOf("\\") + 1,						entry.getName().length());				boolean ismkdir = false;				if (filename.lastIndexOf("/") != -1) { // 检查此文件是否带有文件夹					ismkdir = true;				}				if (!StringUtils.isEmpty(reName)) {					filename = savePath + reName;				} else {					filename = savePath + filename;				}				if (entry.isDirectory()) { // 如果是文件夹先创建					file = new File(filename);					file.mkdirs();					continue;				}				file = new File(filename);				if (!file.exists()) { // 如果是目录先创建					if (ismkdir) {						new File(filename.substring(0, filename.lastIndexOf("/"))).mkdirs(); // 目录先创建					}				}				file.createNewFile(); // 创建文件				is = zipFile.getInputStream(entry);				fos = new FileOutputStream(file);				bos = new BufferedOutputStream(fos, buffer);				while ((count = is.read(buf)) > -1) {					bos.write(buf, 0, count);				}				bos.flush();				bos.close();				fos.close();				is.close();			}			zipFile.close();		} catch (IOException ioe) {			ioe.printStackTrace();			return false;		} finally {			try {				if (bos != null) {					bos.close();				}				if (fos != null) {					fos.close();				}				if (is != null) {					is.close();				}				if (zipFile != null) {					zipFile.close();				}			} catch (Exception e) {				e.printStackTrace();			}		}				return true;	}}

标签: #java 解压zip格式字符串 #java解压 #java 压缩包解压