public static String compressString(String str) throws IOException{
if (str == null || str.length() == 0) {
return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes());
gzip.close();
Gdx.files.local("gziptest.gzip").writeString(out.toString(), false);
return out.toString();
}
Quando li risparmio che stringa in un file, ed eseguire gunzip -d file.txt
in UNIX, si lamenta:Compress una stringa a gzip in Java
gzip: gzip.gz: not in gzip format
Perché non si utilizza semplicemente un [FileOutputStream (al posto di ByteArrayOutputStream)] (http://stackoverflow.com/questions/5994674/java-save-string-as-gzip-file)? Hai provato cosa succede allora? –
È libgdx, una libreria di sviluppo di giochi multipiattaforma. L'ho solo scritto su un file per la risoluzione dei problemi. In realtà sto provando a inviare la stringa tramite la richiesta HTTP POST al mio server flask, ma il lato server ha lamentato che la stringa non è valida gzip. – kelorek
Immagino che il problema sia la conversione dei dati compressi in una stringa. Penso che dovresti considerare il risultato come un byte []. Può libgdx scrivere un byte [] in un file? –