andriod中的解压缩不起作用,使用php压缩

时间:2016-08-27 13:31:46

标签: php android compression

我使用以下函数在PHP中压缩了一个String

      ...........................................
      $compressedStr= gzcompress($txt, 9);
      ...........................................

并使用QR码将压缩结果发送到android。在android中,收到的字符串是在android中使用以下函数压缩的,但这不起作用。在php中压缩字符串然后在android中解压缩的最佳方法是什么?

public static String DecompressString(String inputStr) throws Exception {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    DeflaterOutputStream dos = new DeflaterOutputStream(baos);
    dos.write(inputStr.getBytes());
    dos.flush();
    dos.close();
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    InflaterInputStream iis = new InflaterInputStream(bais);

    String result = "";
    byte[] buf = new byte[5];
    int rlen = -1;
    while ((rlen = iis.read(buf)) != -1) {
        result += new String(Arrays.copyOf(buf, rlen));
    }

        return  result;
}

1 个答案:

答案 0 :(得分:0)

文档不清楚,但似乎InflaterInputStreamnowrap类中调用了Inflater,因此它期待原始的deflate格式。 gzcompress()提供zlib包装的deflate流。您可以直接使用Inflater类,或者在PHP端使用gzdeflate()