Java: Błąd podczas tworzenia GZIPInputStream: Nie w formacie GZIP

Próbuję użyć następującego kodu Java do kompresji i dekompresji ciągu znaków. Ale linia, która tworzy nowy obiekt GZipInputStream z nowego obiektu ByteArrayInputStream, zgłasza wyjątek „java.util.zip.ZipException: nie w formacie GZIP”. Czy ktoś wie, jak to rozwiązać?

        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();

questionAnswers(3)

yourAnswerToTheQuestion