Maison >Java >javaDidacticiel >Comment décompresser par programme des fichiers sous Android à l'aide de ZipInputStream ?

Comment décompresser par programme des fichiers sous Android à l'aide de ZipInputStream ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 22:38:02325parcourir

How to Programmatically Unzip Files in Android using ZipInputStream?

Décompression programmée dans Android

La décompression de fichiers par programmation dans Android permet aux développeurs d'extraire et de gérer des fichiers individuels à partir d'une archive .zip compressée. Pour y parvenir, plusieurs techniques et bibliothèques sont disponibles.

Une méthode efficace consiste à utiliser la classe ZipInputStream. Cette classe fournit un flux d'entrée mis en mémoire tampon pour lire et décompresser les fichiers d'une archive .zip. L'extrait de code ci-dessous montre comment utiliser ZipInputStream pour extraire des fichiers :

<code class="java">private boolean unpackZip(String path, String zipname) {
    try (InputStream is = new FileInputStream(path + zipname);
         ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is))) {
        ZipEntry ze;
        byte[] buffer = new byte[1024];
        int count;

        while ((ze = zis.getNextEntry()) != null) {
            String filename = ze.getName();

            // Create directories if necessary
            if (ze.isDirectory()) {
                File fmd = new File(path + filename);
                fmd.mkdirs();
                continue;
            }

            FileOutputStream fout = new FileOutputStream(path + filename);

            while ((count = zis.read(buffer)) != -1) {
                fout.write(buffer, 0, count);
            }

            fout.close();
            zis.closeEntry();
        }

        zis.close();
        return true;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
}</code>

Ce code parcourt les entrées du fichier .zip à l'aide de getNextEntry() et extrait chaque fichier vers le chemin spécifié tout en vérifiant les répertoires et en les créant si nécessaire.

L'optimisation ZipInputStream par peno améliore considérablement les performances. Il garantit que le tampon est initialisé une fois en dehors de la boucle, ce qui peut réduire l'utilisation de la mémoire et la surcharge.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn