„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Komprimierung und Dekomprimierung von Dateien in Java

Komprimierung und Dekomprimierung von Dateien in Java

Gepostet am 2025-03-24
Durchsuche:402

Compressing and Decompressing files in Java

In diesem Artikel werden die Dateikomprimierung und Dekompression in Java untersucht und sich auf die DeflateroutputStream und InflaterInputStream Klassen für Deflat -Komprimierung konzentrieren. Diese Klassen bieten effiziente Möglichkeiten, komprimierte Daten zu verarbeiten.

Kernkonzepte:

java bietet integrierte Unterstützung für die Komprimierung und Dekomprimierung von Dateien mit dem Paket java.util.zip . DeflateroutputStream komprimiert Daten in das Deflate -Format (oft in ZIP -Archiven verwendet), während InflaterInputStream Daten im selben Format dekomprimiert.

.

. Beispiel: Komprimieren einer Datei in ZIP

Dieses Beispiel zeigt, wie eine Datei in ein ZIP -Archiv komprimiert wird:
try {
    File file = new File(filePath);
    String zipFileName = file.getName()   ".zip";
    FileOutputStream fos = new FileOutputStream(zipFileName);
    ZipOutputStream zos = new ZipOutputStream(fos);
    zos.putNextEntry(new ZipEntry(file.getName()));
    byte[] bytes = Files.readAllBytes(Paths.get(filePath));
    zos.write(bytes, 0, bytes.length);
    zos.closeEntry();
    zos.close();
} catch (FileNotFoundException ex) {
    System.err.format("File not found: %s%n", filePath);
} catch (IOException ex) {
    System.err.println("I/O error: "   ex);
}

Algorithmus für die Dateikomprimierung/Dekompression:

Ein allgemeiner Algorithmus für die Dateikomprimierung und Dekompression in Java beinhaltet die folgenden Schritte:
  1. Initialisierung:
  2. Importieren notwendige Klassen, Definieren Sie Dateipfade.
  3. compression: create FileOutputStream und DeflateroutputStream , um komprimierte Daten zu schreiben. Lesen Sie Daten aus der Quelldatei mit FileInputStream , schreiben Sie an DeflateroutputStream
  4. und schließen Streams.
  5. decompression: create FileInputStream und InflaterInputStream zum Lesen und Dekomprimieren von Daten. Schreiben Sie dekomprimierte Daten in eine Zieldatei mit FileOutputStream
  6. und schließen Sie Streams.
  7. Fehlerbehandlung: implementieren Sie eine robuste Fehlerbehandlung (z. B. try-catch Blöcke), um potential ioExceptions
  8. zu verwalten.
.

.

vereinfachte Syntax Beispiele:

Während vollständiger, erfordern robuste Beispiele mehr Fehlerbehandlung und Dateipfadverwaltung, veranschaulichen vereinfachte Syntax -Snippets die Kernvorgänge:

Kompression:
FileInputStream inputStream = new FileInputStream(inputPath);
FileOutputStream outputStream = new FileOutputStream(outputPath);
DeflaterOutputStream compressor = new DeflaterOutputStream(outputStream);
// ... write data from inputStream to compressor ...
compressor.close();
FileInputStream InputStream = new FileInputStream (inputPath); FileOutputStream OutputStream = new FileOutputStream (OutputPath); DeflateroutputStream Compressor = new DeflateroutputStream (Ausgangsstream); // ... Daten von InputStream in den Kompressor schreiben ... compressor.close ();

Dekompression:
FileInputStream inputStream = new FileInputStream(inputPath);
FileOutputStream outputStream = new FileOutputStream(outputPath);
DeflaterOutputStream compressor = new DeflaterOutputStream(outputStream);
// ... write data from inputStream to compressor ...
compressor.close();
FileInputStream InputStream = new FileInputStream (inputPath); FileOutputStream OutputStream = new FileOutputStream (OutputPath); InflaterInputStream Decompressor = neuer InflaterInputStream (InputStream); // ... Schreiben Sie Daten vom Dekompressor auf OutputStream ... decompressor.close ();

Ansätze:

Es gibt zwei Hauptansätze: Komprimieren/Dekomprimieren einzelner Dateien und Handhabung mehrerer Dateien oder Verzeichnisse. Die früher im Originaltext angegebenen Beispiele zeigen eine Einzelfilmkomprimierung mit zipoutputstream und ein komplexeres Beispiel für mehrere Dateien. Umgang mit Verzeichnissen erfordert eine rekursive Verarbeitung, um die Verzeichnisstruktur zu durchqueren. Beachten Sie, dass den Original -Code -Beispielen keine ordnungsgemäße Handhabung und Fehlerbehandlung für Dateipfad und Fehler hatten, was zu

FilenotFoundException

führte. Stellen Sie immer eine robuste Fehlerbehandlung sicher und geben Sie die korrekten Dateipfade in Ihrem Code an. .

Abschluss:

Java bietet leistungsstarke Tools für die Dateikomprimierung und Dekompression. Verständnis DeflateroutputStream und

InflaterInputStream

sowie die ordnungsgemäße Fehlerbehandlung und das Dateipfadmanagement sind entscheidend für die Erstellung zuverlässiger und effizienter Komprimierungsdienstprogramme. Denken Sie daran, immer potenzielle Ausnahmen zu behandeln und dem Benutzer entsprechende Fehlermeldungen anzugeben. Compressing and Decompressing files in Java.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3