PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] Backups erstellen



c4pone
02.06.2010, 09:23
moin moin,
ich hab nen kleines Programm geschrieben das ne lokale Datenbank benutzt(derby). Jetzt möcht ich in bestimmten Situation die Datenbank backupen (die Datenbank ist ein einfacher Ordner!). Das Backup sollte aber möglichst komprimiert sein .

Jetzt meine Frage wie würdet ihr die Sache angehen ?

gruß c4pone

The-God-of-all
02.06.2010, 10:36
Hallo,

also wenn das Backup ein einfacher Ordner ist wäre es möglich mithilfe von Java eine Zip Datei mit dem Ordner Inhalt zu erstellen. Es gibt in Java das Package java.util.zip.* welches einige Klassen enthält um mit Zip komprimierten Dateien zu arbeiten.

Ich habe hier einen Beispielcode der eine Zip Datei erstellt:



import java.io.*;
import java.util.zip.*;

...
...
try{
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(outfile));//Neuen ZipOutputStrem erstellen. outfile enthält den Dateinamen der Zip Datei.
ZipEntry ze = new ZipEntry(filename);//Eine Datei die in das Zip Archiv eingefügt werden soll. filename ist der Name der Datei in dem Archiv.
zos.putNextEntry(ze);//Die Datei zum Zip Archiv hinzufügen
zos.write(content);//Schreibt content in die Zip komprimierte Datei (kann auch in einer Schleife aufgerufen werden, am besten immer Blockweise den Inhalt der Original Datei kopieren)
zos.closeEntry();//Die Datei schließen, hiernach könnte eine weitere Datei zum Archiv hinzugefügt werden.
zos.close();//Den Strem schließen (Aufräumen).
}catch(Exception e(){
e.printStackTrace();
}
...

Man kann so aus einem Ordner recht einfach ein Zip Archiv erstellen, mithilfer der Klasse File kann man eine Dateiliste des zu kopierenden Ordners erstellen, danach dann diese Liste in einer Schleife durchgehen und jede Datei öffnen und dann Blockweise den Inhalt der Datei in das Zip Archiv kopieren.

Eine evtl. einfachere Lösung könnte sein wenn das Programm nicht mehr Plattform unabhängig sein soll ein Windowsprogramm wie WinRAR auszuführen, das müsste dann aber isntalliert sein und irgendwie der Pfad angegeben sein. Daher halte ich diese Lösuzng für nicht so schön.

Wie gut die Komprimierung der mit Java erstellten Zip Archive ist weiß ich nicht genau.

c4pone
02.06.2010, 13:12
hey danke für die schnelle und ausführliche Hilfe. Wußte garnicht das Java von Haus aus Dateien in Zip Archive packen kann. Nicht schlecht :P

Werd es damit mal versuchen.

Den 2ten Lösungsweg find ich nicht so gut, weil dadurch direkt 2 Abhängigkeiten entstehen

danke gruß c4pone