작업 과정에서 폴더를 압축하고 사용자에게 다운로드 할 수 있도록 폴더를 생성해야합니다. 그래서 압축 파일을위한 도구 클래스를 직접 썼습니다. 이 도구 클래스는 단일 파일 및 폴더 압축을 지원합니다. 코드를 넣으십시오 :
import java.io.bufferedoutputStream; import java.io.file; import java.io.fileInputStream; import java.io.fileoutputStream; import org.apache.tools.zip.zipentry; import org.apache.tool.zip.zip.zipoutputstream;/** @project : test : test : test * @project : 2013-7-28 * @description : 파일 압축 도구 클래스 * 지정된 파일/폴더를 zip 및 RAR 압축 파일로 압축 */public class compressedFileUtil {/** * 기본 생성자 */public compressedFileUtil () {}/** * @desc 지정된 형식으로 소스 파일/폴더를 생성합니다. @param targetpath 대상 압축 파일 저장 경로 * @return void * @throws 예외 */ public void compressedFile (String ResourcesPath, String TargetPath) 예외 {file resourcefile = 새 파일 (resources path); // 소스 파일 targetFile = 새 파일 (대상 경로); // 목적 // 대상 경로가 존재하지 않으면 새 if (! targetfile.exists ()) {targetfile.mkdirs (); } 문자열 targetName = resourcefile.getName ()+". Zip"; // 대상 압축 파일 이름 FileOutputStream outputStream = 새 FileOutputStream (TargetPath+"//"+TargetName); ZipOutputStream out = 새로운 ZipOutputStream (새로운 BufferedOutputStream (outputStream)); CreateCompressedFile (Out, ResourcesFile, ""); out.close (); } /*** @desc 압축 파일을 생성합니다. * 폴더 인 경우 재귀를 사용하여 파일을 횡단하고 압축하는 경우 * 파일 인 경우 * @param 출력 스트림 * @param 파일 대상 파일 * @return void * @throws Exception */public void createCompressedFile (ZipoutPutStream, 파일 파일, 문자열 dir) 예외 {// 추가 프로세스는 폴더가 수행되는 경우 폴더가 수행됩니다. if (file.isdirectory ()) {// 파일 목록 정보 파일 받기 [] files = file.listfiles (); // 폴더를 다음 레벨 패키징 디렉토리에 추가합니다. dir = dir.length () == 0? "": dir +"/"; // (int i = 0; i <files.length; i ++) {createCompressedFile (out [i], dir+files [i] .getName ()); // 재귀 프로세스}} else {// 현재는 파일, 포장 처리 // 파일 입력 스트림 파일 파일 inputStream fis = new FileInputStream (file); out.putNextEntry (새로운 zipentry (dir)); // int j = 0을 쓰십시오. 바이트 [] 버퍼 = 새로운 바이트 [1024]; while ((j = fis.read (buffer))> 0) {out.write (buffer, 0, j); } // 입력 스트림을 닫습니다. fis.close (); }} public static void main (String [] args) {compressedFileUtil compressedFileUtil = new CompressedFileUtil (); {compressedFileUtil.compressedFile ( "g : // zip", "f : // zip"); System.out.println ( "압축 파일이 생성되었습니다 ..."); } catch (예외 e) {System.out.println ( "압축 파일 생성 실패 ..."); e.printstacktrace (); }}}프로그램 실행 결과는 다음과 같습니다.
압축 전 파일 디렉토리 구조 :
팁 : 포장을 위해 java.util 아래에서 java.util.zip을 사용하는 경우, 중국어가있는 문제가있을 수 있습니다. Java Zip 방법이 인코딩 형식의 변경 사항을 지원하지 않기 때문입니다. 포장을 위해 Ant.java에서 Zip Tool 클래스를 사용할 수 있습니다. 따라서 ANT.jar를 프로젝트의 LIB 디렉토리로 가져와야합니다.
요약
위는 편집자가 소개 한 Java 생성 압축 파일의 예제 코드입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!