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();
}
When I save that string to a file, and run gunzip -d file.txt in unix, it complains: 
gzip: gzip.gz: not in gzip format
                Try to use BufferedWriter
public static String compressString(String str) throws IOException{
if (str == null || str.length() == 0) {
    return str;
}
BufferedWriter writer = null;
try{
    File file =  new File("your.gzip")
    GZIPOutputStream zip = new GZIPOutputStream(new FileOutputStream(file));
    writer = new BufferedWriter(new OutputStreamWriter(zip, "UTF-8"));
    writer.append(str);
}
finally{           
    if(writer != null){
     writer.close();
     }
  }
 }
About your code example try:
public static String compressString(String str) throws IOException{
if (str == null || str.length() == 0) {
    return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream(str.length());
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes());
gzip.close();
byte[] compressedBytes = out.toByteArray(); 
Gdx.files.local("gziptest.gzip").writeBytes(compressedBytes, false);
out.close();
return out.toString(); // I would return compressedBytes instead String
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With