이 예제는 여러 Java 파일로 내보낸 특정 코드를 참조를 위해 Zip 압축 패키지로 공유합니다. 특정 내용은 다음과 같습니다
1. Java를 사용하여 바 서버의 이미지를 압축 패키지로 ZIP 형식으로 구현하고 여러 파일을 패키지로 내보내십시오.
2. 코드는 다음과 같습니다.
** ImageByTeUtil.java **
공개 클래스 ImageBeyTeUtil {개인 정적 플로트 품질 = 0.6f; public static void compresszip (list <file> listfiles, outputStream 출력, 문자열 인코딩, 부울 압축, 문자열 별칭) {zipoutputStream zipstream = null; try {zipstream = new ZipoutputStream (output); for (파일 : listfiles) {compresszip (file, zipstream, compress, alias+"_"+(listfiles.indexof (file) +1)); }} catch (예외 e) {e.printstacktrace (); } 마침내 {try {if (zipstream! = null) {zipstream.close (); }} catch (ioexception e) {e.printstacktrace (); }}} private static void compresszip (파일, ZipoutPutStream ZipStream, boolean compress, string alias)는 예외 {fileInputStream input = null; try {input = new FileInputStream (파일); // Zip (입력, ZipStream, file.getName (), compress); zip (입력, ZipStream, alias+"."+file.getName (). substring (file.getName (). lastIndexof ( ".")+1), compress); } catch (예외 e) {e.printstacktrace (); } 마침내 {try {if (input! = null) input.close (); } catch (ioexception e) {e.printstacktrace (); }}} private static void zip (inputStream 입력, ZipoutPutStream ZipStream, String ZipentRyName, boolean compress) 예외 {byte [] bytes = null; bufferedInputStream bufferstream = null; try {if (input == null) 새 예외 던지기 ( "압축 데이터 항목을 얻지 못했습니다! 데이터 항목 이름은 다음과 같습니다." + zipentryname); // 압축 항목은 특정 독립 파일이 아니라 인덱스 Zipentry Zipentry = new Zipentry ( "image/"+zipentryname)와 마찬가지로 항목이라고하는 압축 패키지 파일 목록의 목록 항목입니다. // 압축 된 입력 위치에 위치하고 압축 패키지 ZIPSTREAM.PETNEXTENTRY (Zipentry)에 파일을 쓰기 시작합니다. if (compress) {bytes = imageByTeUtil.compressofQuality (입력, 0); zipStream.write (바이트, 0, 바이트 .length); } else {bytes = new Byte [1024 * 5]; // 버퍼 읽기 및 쓰기 Bufferstream = new bufferedInputStream (입력); // 입력 버퍼 int read = 0; while ((read = bufferstream.read (bytes))! = -1) {zipstream.write (bytes, 0, read); }}} catch (ioexception e) {e.printstacktrace (); } 마침내 {try {if (null! = bufferstream) bufferstream.close (); } catch (ioexception e) {e.printstacktrace (); }}} public static byte [] compressofquality (파일 파일, 플로트 품질) 예외 {byte [] bs = null; inputStream input = null; try {input = new FileInputStream (파일); bs = compressofquality (입력, 품질); } catch (예외 e) {e.printstacktrace (); } 마침내 {try {if (input! = null) input.close (); } catch (ioexception e) {e.printstacktrace (); }} 반환 bs; } public static byte [] compressofquality (inputStream 입력, 플로트 품질) 예외 {bytearRayoutputStream output = null; {output = new BytearRayoutputStream (); if (Quality == 0) {whilmnails.of (입력) .Scale (1f) .outputquality (품질) .toOutputStream (출력); } else {thumbnails.of (입력) .Scale (1f) .outputquality (품질) .toOutputStream (출력); } return output.tobytearRay (); } catch (예외 e) {e.printstacktrace (); } 마침내 {try {if (output! = null) output.close (); } catch (ioexception e) {e.printstacktrace (); }} return null; }}** main.java **
public static void main (String [] args) {// 내보낼 파일 수집을 추가하고 내보내는 데 필요한 파일을 추가하십시오 <file> listfiles = new ArrayList <> (); // 도구 클래스를 호출, 매개 변수 설명 (내보내는 파일 세트, bytearRayoutputStream 객체, 인코딩, 압축 여부, 파일 이름 접두사) imageByTeUtil.comPressZip (ListFiles, "UTF-8", false, "lwj"); // 내보내기 형식을 지정합니다 returnContext.addParam ( "ExportFilename", "extFile.zip"); returncontext.addparam ( "mimetype", "zip"); 반환;}3.이 기능은 개발 프로세스 중 프로젝트 요구에 따라 구현됩니다. 테스트는 정상적으로 사용할 수 있으며 사용자 정의 할 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.