Bonjour à vous,

J'ai actuellement un problème sous la forme de pdf (stockés en mémoire dans des tableaux de bytes) qui ne se dézippent pas correctement.

Je m'explique :

j'ai une méthode

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public static byte[] getUnzippedBytes(byte[] in) throws IOException {
 
        ByteArrayInputStream input = new ByteArrayInputStream(in);
        ZipInputStream zip = new ZipInputStream(input);
 
        //position the stream to the first and only entry ("xml")
        ZipEntry entry = zip.getNextEntry();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        int read = zip.read();
        while (read != -1) {
            baos.write(read);
            read = zip.read();
        }
        input.close();
        zip.close();
        return baos.toByteArray();
    }
qui me décode mal certains fichiers zip. J'en ai parlé à mon responsable de stage qui m'a dit qu'il manquait une boucle sur les zipentry.

J'ai donc modifié sa méthode en :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   public static byte[] getUnzippedBytes(byte[] in) throws IOException {
 
        ByteArrayInputStream input = new ByteArrayInputStream(in);
        ZipInputStream zip = new ZipInputStream(input);
 
        //position the stream to the first and only entry ("xml")
        ZipEntry entry;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
        while((entry=zip.getNextEntry())!=null){
 
 
            int read = zip.read();
            while (read != -1) {
                baos.write(read);
                read = zip.read();
            }	
        }
 
        input.close();
        zip.close();
        return baos.toByteArray();
    }
et ca ne me renvoie toujours pas un pdf en état de marche.

J'ai fait des recherches sur le net pour trouver ce genre de méthodes mais 99% des méthodes de zip que je trouve fonctionnent sur des fichiers, et c'est un peu le bordel si je dois créer le pdf pour le ré-inputter afin de l'afficher et le supprimer une fois affiché.

Je me demandais donc si vous aviez une idée de ce qui clochait dans ma nouvelle méthode?

Merci d'avance.