java.util.zip.ZipInputStream在解压缩过程中为空

时间:2013-01-08 01:35:15

标签: java android zip

压缩的xml字符串,该字符串已从生产服务器提供的Web响应中检索。 字符串是好的,因为.net中的相同方法给出了有效的结果。 (数据是汽车制造商列表。) 然而,在Android中,ZipInputStream读取会生成一个大小合适的缓冲区(4895),但它从位置2661开始具有空数据。正确解压的最后一辆车是'MG'

该方法没有错误。

有人可以看到有什么问题吗? 感谢

private byte[] decompressZip(String zipText) throws IOException{


    try {
        byte[] zipBytes = MakeBytes(zipText);
        byte[] zipData;
        ByteArrayInputStream b = new ByteArrayInputStream(zipBytes);
        BufferedInputStream buf = new BufferedInputStream(b);

        //ZipInputStream zin = new ZipInputStream(b); doesn't matter both constuctors have the fault.
        ZipInputStream zin = new ZipInputStream(buf);
        ZipEntry entry;
        if((entry=zin.getNextEntry())!=null)
        {
            int entrySize=(int)entry.getSize();
            zipData = new byte[entrySize];
            zin.read(zipData, 0, entrySize);

            return zipData;

        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        String sError = e.getMessage();
    }
    return null;
}

0 个答案:

没有答案