Java GZIP funktioniert falsch, gezipptes ist zu klein und lässt sich nicht entzippen
Hallo Leute,
ich habe momentan das Problem, dass ich einen ziemlich langen String mit GZIP zippen möchte, was er auch tut, aber die Länge des gezippten Strings ist viel zu kurz.
Der String der gezippt wird hat ca. 19.000 Zeichen. Nach dem Zippen angeblich nur noch 10. Da die Zeichen und Zahlen in dem String viel zu unterschiedlich sind, ist das unmöglich richtig.
Um dieser Frage nachzugehen, versuche ich es wieder zu entpacken. Leider will das nicht so recht funktionieren:
Hier kommt meine GZIP-Methode:
Und hier meine GZIP-Methode zum unzippen:
Wenn ich den Code ausführe, sagt er mir in Zeile 1 der decompressString-Methode folgendes:
Hat jemand eine Idee, bitte helft mir
Lieben Dank schon mal
ich habe momentan das Problem, dass ich einen ziemlich langen String mit GZIP zippen möchte, was er auch tut, aber die Länge des gezippten Strings ist viel zu kurz.
Der String der gezippt wird hat ca. 19.000 Zeichen. Nach dem Zippen angeblich nur noch 10. Da die Zeichen und Zahlen in dem String viel zu unterschiedlich sind, ist das unmöglich richtig.
Um dieser Frage nachzugehen, versuche ich es wieder zu entpacken. Leider will das nicht so recht funktionieren:
Hier kommt meine GZIP-Methode:
private static String compressString(String toCompress) throws IOException{
String compressed = new String();
if (toCompress == null || toCompress.length() == 0) {
return null;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(toCompress.getBytes(/*"ISO-8859-1"*/));
compressed = out.toString("ISO-8859-1");
gzip.close();
out.close();
return compressed;
}
Und hier meine GZIP-Methode zum unzippen:
private static void decompressString(String toDecompress)throws IOException{
GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(toDecompress.getBytes("UTF-8")));
BufferedReader bf= new BufferedReader(new InputStreamReader(gis, "UTF-8"));
String outStr = "";
String line;
while((line=bf.readLine())!=null){
outStr += line;
}
System.out.println("DEComprimiert: "+outStr);
}
Wenn ich den Code ausführe, sagt er mir in Zeile 1 der decompressString-Methode folgendes:
java.util.zip.ZipException: Not in GZIP format
at java.util.zip.GZIPInputStream.readHeader(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at java.util.zip.GZIPInputStream.<init>(Unknown Source)
at FeuSpektral.decompressString(FeuSpektral.java:713)
at FeuSpektral.load2Ora(FeuSpektral.java:360)
at Feu2DB$15.widgetSelected(Feu2DB.java:1740)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at Feu2DB.runGui(Feu2DB.java:2259)
at Feu2DB.main(Feu2DB.java:2605)
Hat jemand eine Idee, bitte helft mir
Lieben Dank schon mal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 284989
Url: https://administrator.de/contentid/284989
Ausgedruckt am: 23.11.2024 um 02:11 Uhr