carookee - group communication for you
Home / JavaForum / Java allgemein
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
4.392 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 1915 von 2212 (87%) |<   <   >   >|

Autor steffen
Datum 10.02.03, 09:56
Betreff Arbeiten mit dem ZIP-Package


Eine Menge verschiedener Protokolldateien, die je nach Datum neu erzeugt werden, sollten zu "Tagesdateien" möglichst platzsparend zusammengefaßt werden. Ich befaßte mich also mit dem ZIP-Package. Nach mehrfacher Recherche im Internet und vielem Probieren hab' ich folgenden Code geschrieben, den ich täglich ausführen lasse:
public void packFiles(String path) throws IOException, NullPointerException {
    GregorianCalendar gc = new GregorianCalendar(); //heute
    SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
    if (path == null) {
        throw new NullPointerException("path = null");
    }
    File f = new File(path);
    if (!f.exists()) {
        throw new IOException("path ist nicht vorhanden");
    }
    if (f.isFile()) {
        f = f.getParentFile(); //Verzeichnis davon
    }
    File[] af = f.listFiles();
    FileInputStream in;
    int iL;
    byte[] ab;
    ZipEntry zipFile;
    ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(new File(f, format.format(gc.getTime()) + "log.zip")));
    zipOut.setLevel(9); //stark komprimiert
    for (int i = 0; i < af.length; i++) {
        if (af.isFile() && af.getName().endsWith(".log")) {
            zipFile = new ZipEntry(af.getName());
            in = new FileInputStream(af);
            ab = new byte[1024];
            zipOut.putNextEntry(zipFile);
            while ((iL = in.read(ab)) > -1) {
                zipOut.write(ab, 0, iL);
            }
            zipOut.closeEntry();
            in.close();
            af.delete(); //gepackt, also löschen
        }
    }
    zipOut.close();
}



Diskussionsverlauf:
    RE: Arbeiten mit dem ZIP-Package
Arbeiten mit dem ZIP-Package

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com