次の Java コードを使用して、文字列を圧縮および圧縮解除しようとしています。しかし、新しい ByteArrayInputStream オブジェクトから新しい GZipInputStream オブジェクトを作成する行は、「java.util.zip.ZipException: Not in GZIP format」例外をスローします。これを解決する方法を知っている人はいますか?
String orig = ".............";
// compress it
ByteArrayOutputStream baostream = new ByteArrayOutputStream();
OutputStream outStream = new GZIPOutputStream(baostream);
outStream.write(orig.getBytes());
outStream.close();
String compressedStr = baostream.toString();
// uncompress it
InputStream inStream = new GZIPInputStream(new ByteArrayInputStream(compressedStr.getBytes()));
ByteArrayOutputStream baoStream2 = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int len;
while((len = inStream.read(buffer))>0)
baoStream2.write(buffer, 0, len);
String uncompressedStr = baoStream2.toString();