Hallo,
über diesen Code schieb ich ein Objekt mit einigen "Unterobjekten" in eine XML-Struktur die ich als String in ne Datenbank schreiben will. Da einige tausend dieser Strukturen in der Datenbank liegen werden, möchte ich die Daten komprimieren.
Wie kann ich die Daten komprimieren und später dekomprimieren?
Gibt es entweder ne Möglichkeit direkt bei der Datenbank direkt ein komprimiertes Feld zu machen, also dass die DB das komprimieren übernimmt? Oder gibts eine Java-Klasse mit der ich gut komprimieren und dekomprimieren kann?
Hier mal der Code:
über diesen Code schieb ich ein Objekt mit einigen "Unterobjekten" in eine XML-Struktur die ich als String in ne Datenbank schreiben will. Da einige tausend dieser Strukturen in der Datenbank liegen werden, möchte ich die Daten komprimieren.
Wie kann ich die Daten komprimieren und später dekomprimieren?
Gibt es entweder ne Möglichkeit direkt bei der Datenbank direkt ein komprimiertes Feld zu machen, also dass die DB das komprimieren übernimmt? Oder gibts eine Java-Klasse mit der ich gut komprimieren und dekomprimieren kann?
Hier mal der Code:
Java:
public static SFMatch loadMatchFromStream(InputStream is) {
XMLDecoder dec = null;
try {
dec = new XMLDecoder(is);
return (SFMatch) dec.readObject();
} finally {
if (dec != null) {
dec.close();
}
}
}
public static SFMatch loadMatchFromXMLString(String match) {
ByteArrayInputStream bis = new ByteArrayInputStream(match.getBytes());
return loadMatchFromStream(bis);
}
public static SFMatch loadMatchFromXMLFile(String filename) {
try {
return loadMatchFromStream(new FileInputStream(filename));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static void saveMatchToStream(SFMatch match, OutputStream os) {
XMLEncoder enc = null;
try {
enc = new XMLEncoder(os);
enc.writeObject(match);
} finally {
if (enc != null) {
enc.close();
}
}
}
public static String saveMatchToXMLString(SFMatch match) {
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
saveMatchToStream(match, bos);
String tmp = bos.toString();
bos.close();
return tmp;
} catch (IOException ex) {
ex.printStackTrace();
}
return "";
}
public static void saveMatchToXMLFile(SFMatch match, String filename) {
try {
FileOutputStream fos = new FileOutputStream(filename);
saveMatchToStream(match, fos);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}