⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ziptest.java

📁 基于SOCKET的文件传输,软件平台为JAVA
💻 JAVA
字号:
/**
 * 
 */
package com.sincere.utils.timer;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

/**
 * @author Administrator
 *
 */
public class ZIPTest {

	/**
	 * 
	 */
	public ZIPTest() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * 解压缩
	 * @param zipFilePath	zip文件路径
	 * @param releasePath	解压后保存路径
	 * @throws IOException
	 */
	public static void decompressFile(String zipFilePath, String releasePath)
			throws IOException {
		ZipFile zipFile = new ZipFile(zipFilePath);
		Enumeration<ZipEntry> enumeration = zipFile.getEntries();
		InputStream inputStream = null;
		FileOutputStream fileOutputStream = null;
		ZipEntry zipEntry = null;
		String zipEntryNameStr = "";
		String[] zipEntryNameArray = null;
		
		while (enumeration.hasMoreElements()) {
			zipEntry = enumeration.nextElement();
			
			zipEntryNameStr = zipEntry.getName();
			zipEntryNameArray = zipEntryNameStr.split("/");
			String path = releasePath;
			
			File root = new File(releasePath);
			if (!root.exists()) {
				root.mkdir();
			}
			
			for (int i = 0; i < zipEntryNameArray.length; i++) {
				if (i < zipEntryNameArray.length - 1) {
					//创建目录
					path = path + File.separator + zipEntryNameArray[i];
					new File(path).mkdir();
				} else {
					if (zipEntryNameStr.endsWith(File.separator)) {
						//创建目录
						new File(releasePath + zipEntryNameStr).mkdir();
					} else {
						inputStream = zipFile.getInputStream(zipEntry);
						fileOutputStream = new FileOutputStream(new File(releasePath+ zipEntryNameStr));
						byte[] buf = new byte[1024];
						int len;
						while ((len = inputStream.read(buf)) > 0) {
							fileOutputStream.write(buf, 0, len);
						}
						inputStream.close();
						fileOutputStream.close();
					}
				}
			}
		}
		zipFile.close();
	}

	/**
	 * 压缩
	 */
	public void ys() {
		try {

			File rFile = new File("C:\\root\\2008\\财务部\\财务部\\");
			if (!rFile.exists()) {
				return;
			}

			//判断是否是一个目录
			if (!rFile.isDirectory()) {
				return;
			}

			/**打开Zip文件输出流*/
			org.apache.tools.zip.ZipOutputStream out = new org.apache.tools.zip.ZipOutputStream(
					new FileOutputStream("c://" + System.currentTimeMillis()
							+ ".zip"));
			out.setComment("sssssssssss");

			File[] files = rFile.listFiles();
			if (files == null) {
				return;
			}

			byte[] buf = new byte[1024];
			for (int i = 0; i < files.length; i++) {
				if (files[i] == null)
					continue;

				/**定义输出流*/
				FileInputStream in = new FileInputStream(files[i]);

				/**添加文件到压缩包*/
				out.putNextEntry(new org.apache.tools.zip.ZipEntry(files[i]
						.getName()));

				/**写文件*/
				int len;
				while ((len = in.read(buf)) > 0) {
					out.write(buf, 0, len);
				}

				/**关闭文件流*/
				out.closeEntry();
				in.close();
			}

			out.close();
		} catch (Exception e) {
			System.out.println("发生异常:");
			e.printStackTrace();
		}
	}

	/**
	 * 解压
	 */
	public void jy() {
		try {
			this.decompressFile("c:\\1217916021656.zip", "c:\\root\\");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		long bTime = System.currentTimeMillis();

		ZIPTest ZIPTest = new ZIPTest();
		//ZIPTest.ys();
		ZIPTest.jy();
		System.out.println("测试用时:" + (System.currentTimeMillis() - bTime));
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -