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();
}
給gzip當我保存這個字符串到一個文件,並運行在UNIX gunzip -d file.txt
,它抱怨:壓縮字符串中的Java
gzip: gzip.gz: not in gzip format
爲什麼不簡單地使用[FileOutputStream(代替ByteArrayOutputStream)](http://stackoverflow.com/questions/5994674/java-save-string-as-gzip-file)?你有沒有嘗試過會發生什麼? –
它是libgdx,它是一個跨平臺的遊戲開發庫。我只將它寫入文件進行故障排除。我實際上一直試圖通過http POST請求將字符串發送到我的燒錄服務器,但服務器端抱怨字符串不是有效的gzip。 – kelorek
我想問題是你的壓縮數據轉換爲字符串。我認爲你應該將結果視爲一個字節[]。 libgdx可以將一個字節[]寫入文件嗎? –