Während des Arbeitsprozesses muss ein Ordner generiert werden, um komprimiert und dem Benutzer zum Download zur Verfügung gestellt zu werden. Also schrieb ich selbst eine Toolklasse für komprimierte Dateien. Diese Werkzeugklasse unterstützt Einzeldatei- und Ordnerkomprimierung. Setzen Sie den Code ein:
import Java.io.buffenedOutputStream; Import java.io.file; import java.io.fileinputstream; import Java.io.fileOutputStream; import org.apache.tools.zip.zipentry; 2013-7-28 * @Description: File compression tool class* Compress the specified file/folder into zip and rar compressed files*/public class CompressedFileUtil { /** * Default constructor */ public CompressedFileUtil(){ } /** * @desc Generate the source file/folder in the specified format to compressed files, format zip * @param resourcePath Source Datei/ Ordner * @param targetPath -Ziel komprimierte Dateispeicherpfad * @return void * @throws Exception */ public void compressedFile (String ResourcesPath, String TargetPath) löst Ausnahme aus {Datei ressourcenfile = new Datei (RessourcenPath); // Quelldatei -Datei targetFile = new Datei (TargetPath); // Zweck // Wenn der Zielpfad nicht existiert, erstellen Sie ein neues if (! TargetFile.exists ()) {targetFile.mkdirs (); } String targetName = ressourcenfile.getName ()+". ZIP"; // Zielkomprimierte Dateiname FileOutputStream OutputStream = new FileOutputStream (TargetPath+"//"+TargetName); ZipoutputStream out = neu zipoutputStream (neuer bufferedOutputStream (outputStream)); CreateCompressedFile (out, ressourcenfile, ""); out.close (); } /*** @desc erzeugen komprimierte Datei. * Wenn es sich um einen Ordner handelt, dann verwenden Sie die Rekursion, um die Datei zu durchqueren und zu komprimieren // Dateilisteninformationsdatei abrufen [] file = file.listfiles (); // Ordner zum nächsten Level -Verpackungsverzeichnis hinzufügen. Dir = Dir.Length () == 0? "": Dir +"/"; // Schleifen Sie in den Ordner für (int i = 0; i <files.length; i ++) {createCompressedFile (OUT, Dateien [i], Dir+Dateien [i] .getName ()). // rekursive Verarbeitung}} else {// Die aktuelle Akte ist eine Datei, Verpackungsverarbeitung // Dateieingabestream FileInputStream fis = new FileInputStream (Datei); out.putNextEntry (neu Zipentry (Dir)); // int j = 0 schreiben; byte [] buffer = neues byte [1024]; while ((j = fis.read (puffer))> 0) {out.write (buffer, 0, j); } // den Eingabestream fis.close () schließen; }} public static void main (String [] args) {compressedFileUtil compressedFileUtil = new compressedFileUtil (); try {compressedFileUtil.comPressedFile ("G: // Zip", "f: // Zip"); System.out.println ("Komprimierte Datei wurde generiert ..."); } catch (Ausnahme e) {System.out.println ("Komprimierte Dateigenerierung fehlgeschlagen ..."); E. printstacktrace (); }}}Die Ergebnisse des Programms sind wie folgt:
Die Dateiverzeichnisstruktur vor der Komprimierung:
Tipp: Wenn Sie Java.util.zip unter java.util zur Verpackung verwenden, kann es ein Problem von verstümmelten Chinesen geben. Dies liegt daran, dass die Java -Zip -Methode Änderungen im Codierungsformat nicht unterstützt. Wir können die Zip -Tool -Klasse unter Ant.java zur Verpackung verwenden. Daher müssen Sie Ant.jar in das Lib -Verzeichnis des Projekts importieren.
Zusammenfassen
Das obige ist der Beispielcode für von Java generierte komprimierte Dateien, die Ihnen vom Editor vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!