📄 ziputils.java
字号:
package com.aqiao.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipUtils {
/**
* 功能说明:文件压缩
*
* @author jimmyaqiao
* @param srcPath
* 目录或者一个文件
* @param destFileURL
* 指定的目录
* @throws Exception
*/
public static void compressFile(String srcPath, String destFileURL)
throws Exception {
ArrayList fileNames = new ArrayList();
ArrayList files = new ArrayList();
try {
File rootFile = new File(srcPath);
// File destFile = new File(destFileURL);
// destFile.deleteOnExit();
FileOutputStream fileOutputStream = new FileOutputStream(
destFileURL);
ZipOutputStream zipOutputStream = new ZipOutputStream(
fileOutputStream);
listFile(rootFile, fileNames, files);
for (int i = 0; i < fileNames.size(); i++) {
FileInputStream fileInputStream = new FileInputStream(
(File) files.get(i));
ZipEntry zipEntry = new ZipEntry((String) fileNames.get(i));
zipOutputStream.putNextEntry(zipEntry);
byte[] buffer = new byte[1024];// 需要按照文件大小分配大小
// 需要解决不能处理中文名bug
while (fileInputStream.read(buffer) != -1) {
zipOutputStream.write(buffer);
}
zipOutputStream.closeEntry();
fileInputStream.close();
}
zipOutputStream.close();
} catch (IOException e) {
throw new Exception(e);
}
}
private static void listFile(File parentFile, List nameList, List fileList) {
if (parentFile.isDirectory()) {
File[] files = parentFile.listFiles();
for (int i = 0; i < files.length; i++) {
listFile(files[i], nameList, fileList);
}
} else {
fileList.add(parentFile);
nameList.add(parentFile.getName());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -