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 के लिए जब मैं एक फाइल करने के लिए कि स्ट्रिंग बचाने के लिए, और यूनिक्स में gunzip -d file.txt
चलाने के लिए, यह शिकायत: उपयोग करने के लिएएक स्ट्रिंग संक्षिप्त जावा
gzip: gzip.gz: not in gzip format
आप बस [FileOutputStream (बाइटएरेऑटपुटस्ट्रीम के स्थान पर) का उपयोग क्यों नहीं करते हैं (http://stackoverflow.com/questions/5994674/java-save-string-as-gzip-file)? क्या आपने कोशिश की है कि तब क्या होता है? –
यह libgdx है, जो एक क्रॉस-प्लेटफार्म गेम विकास पुस्तकालय है। मैंने इसे केवल समस्या निवारण के लिए फ़ाइल में लिखा था। मैं वास्तव में अपने फ्लास्क सर्वर पर http POST अनुरोध के माध्यम से स्ट्रिंग भेजने की कोशिश कर रहा हूं, लेकिन सर्वर पक्ष ने शिकायत की कि स्ट्रिंग मान्य gzip मान्य नहीं है। – kelorek
मुझे लगता है कि समस्या संपीड़ित डेटा का एक स्ट्रिंग में आपका रूपांतरण है। मुझे लगता है कि आपको परिणाम को बाइट [] के रूप में देखना चाहिए। Libgdx एक बाइट [] एक फ़ाइल में लिख सकते हैं? –