[J2ME] décompression

cs_swayvill Messages postés 3 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 29 septembre 2006 - 6 sept. 2006 à 12:35
cs_swayvill Messages postés 3 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 29 septembre 2006 - 6 sept. 2006 à 14:18
Bonjour,
Je souhaiterai décompresser un fichier GZIP en J2ME.
J'ai trouvé une class qui le gère, disponible sur le site de java4ever, mais j'ai une erreur "java.lang.ArrayIndexOutOfBoundsException" lorsque j'essaye de l'utiliser. Cette classe donne une fonction "inflate(byte[] gzip)", qui prend donc le fichier compressé sous forme d'un tableau d'octés en paramètre.
J'ouvre peut être mal le fichier??

Voici comment je l'utilise, si vous avez une idée, ou si vous connaissez une autre bibliothèque...

public class Main extends MIDlet {
    public void startApp() {
        try
         {
            FileConnection f = (FileConnection) Connector.open("file://" + "/test.gz");
            InputStream is = f.openDataInputStream();     
            if (is == null)
                return;
            byte[] b = new byte[1024];
            int length = is.read(b, 0, 1024);
           
            GZIP gzip = new GZIP();
             
            gzip.inflate(b);
         }
         catch (Exception ioe)
         {
             System.err.println("Error:" + ioe);
         }
    }
   
    public void pauseApp() {
    }
   
    public void destroyApp(boolean unconditional) {
    }
}

1 réponse

cs_swayvill Messages postés 3 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 29 septembre 2006
6 sept. 2006 à 14:18
Donc en faite il faut que le tableau contenant le fichier compressé est la même taille que le fichier.
Donc pour un fichier de 84 octets ici il faut faire:

byte[] b = new byte[84];
int length = is.read(b, 0, 84);

Voilà c'est tout!

Merci moi.
0
Rejoignez-nous