実動サーバーによって提供された 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;
}