[J2ME] décompression

Signaler
Messages postés
3
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
29 septembre 2006
-
Messages postés
3
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
29 septembre 2006
-
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

Messages postés
3
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
29 septembre 2006

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.