2012-05-06 18 views
2

プログラムで.xml.gzファイルを解凍しようとしています。 .gzファイルを解凍する方法を教えるインターネット上で利用可能な多くの例があるので、それはかなり単純なようです。しかし、私はそれをしようとするたびに例外が発生します:java.io.IOException:不明な形式(マジックナンバーd4d4)。Androidの圧縮解除.xml.gzファイル

私はAndroidアプリでこれをやろうとしていますが、そうでなければJavaで行われたやり方とは異なる方法で行われるはずですか?

次のコード例は、hereです。

誰でも私がここで間違っていることを知っていますか?また、私はWebサーバーからダウンロードした後、ファイルを解凍しています。ダウンロードはうまくいったようです。

答えて

5

同時に解凍をダウンロードする良い方法が見つかりました。それは微風のように動作します。

protected String doInBackground(String... sUrl) { 
    try { 
     URL url = new URL(sUrl[0]); 
     URLConnection connection = url.openConnection(); 
     InputStream stream = connection.getInputStream(); 
     stream = new GZIPInputStream(stream); 
     InputSource is = new InputSource(stream); 
     InputStream input = new BufferedInputStream(is.getByteStream()); 
     OutputStream output = new FileOutputStream("Path to the file"); 
     byte data[] = new byte[2097152]; 
     long total = 0; 
     int count; 

     while ((count = input.read(data)) != -1) { 
      total += count; 
      output.write(data, 0, count); 
     } 

     output.flush(); 
     output.close(); 
     input.close(); 
    } catch (BufferOverflowException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 

参考:http://abhirampal.com/2012/05/17/android-download-decompress-gzip/

1

.xml.gzファイルの最初の10バイトは何ですか?デコンプレッサーが最初の2バイトがd4 d4であることを伝えようとしているようです。 .gzファイルは1f 8bで始まる必要があります。

関連する問題