0

実動サーバーによって提供された Web 応答から取得された圧縮された xml 文字列。.net の同じ方法論で有効な結果が得られるため、文字列は適切です。(データは自動車メーカーのリストです。)ただし、Android では、ZipInputStream の読み取りによって適切なサイズ (4895) のバッファーが生成されますが、位置 2661 以降には null データがあります。正しく解凍された最後の車は「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;
}
4

0 に答える 0