IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

zipper un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 38
    Points : 32
    Points
    32
    Par défaut zipper un fichier
    Bonjour à tous,

    je débute en java. Je viens de récupérer un projet java qui doit zipper un gros nombre de fichiers (7000). Pour ce faire il utilise la bibliothèque truezip

    Ce programme tournait sous windows et mettait 2mn pour s'exécuter. je l'ai migrer pour qu'il tourne en webservice sur un serveur web linux red hat, et maintenant, il met 13mn pour s'exécuter.

    Je souhaiterais l'optimiser. Quel méthode me conseillez vous pour générer le plus rapidement possible un zip ?

    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Homme Profil pro
    Nom
    Inscrit en
    Juin 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Nom

    Informations forums :
    Inscription : Juin 2006
    Messages : 90
    Points : 89
    Points
    89
    Par défaut
    J'utilise les classes dans java.util.zip.*
    DataFile est une strcuture a moi, qui contient entre autre le nom du fichier et les données
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
        public byte[] zip(final List<DataFile> files) throws IOException {
            if (files.isEmpty()) {
                return new byte[]{};
            }
            logFiles(files, "zipping files :");
            final ByteArrayOutputStream bos = new ByteArrayOutputStream();
            final ZipOutputStream zipfile = new ZipOutputStream(bos);
            for (DataFile file : files) {
                zipfile.putNextEntry(new ZipEntry(file.getName()));
                zipfile.write(file.getData());
            }
            zipfile.close();
            return bos.toByteArray();
        }
     
        public List<DataFile> unzip(final byte[] zipcontent, final int offset, final int length)
                throws IOException {
            final List<DataFile> files = new ArrayList<DataFile>();
            final ByteArrayInputStream bis = new ByteArrayInputStream(zipcontent, offset, length);
            ZipInputStream zipfile = null;
            try {
                zipfile = new ZipInputStream(bis);
                ZipEntry entry;
                while ((entry = zipfile.getNextEntry()) != null) {
                    final DataFile f = new SimpleFile(entry.getName(), StreamUtils.readInputStream(zipfile));
                    files.add(f);
                }
            } finally {
                if (zipfile != null) {
                    zipfile.close();
                }
            }
            return files;
        }
     
        private void logFiles(List<DataFile> files, String description) {
            final StringBuffer buffer = new StringBuffer(description);
            for (final DataFile file : files) {
                buffer.append("\n");
                buffer.append(file.getName());
            }
            logger.debug(buffer.toString());
        }

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Avant d'incriminer l'API, as-tu tracé toute ton architecture pour voir d'où viens cette perte de temps.

    Webservice ? I/O ? etc ...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 38
    Points : 32
    Points
    32
    Par défaut
    Merci à tous les deux je vais tracer mon programme pour voir d'ou vient ce problème et je vais utiliser la classe java.util.zip.*

Discussions similaires

  1. [ZIP] zipper des fichiers de plus d'un mega
    Par sylviefrfr dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/10/2005, 14h40
  2. [MFC] zipper un fichier/répertoire
    Par r0d dans le forum MFC
    Réponses: 2
    Dernier message: 06/05/2005, 18h10
  3. [Abrevia] Comment zipper un fichier sans inclure son répertoire ?
    Par DelphiSteph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/02/2005, 20h01
  4. Zipper plusieurs fichiers avec Abbrevia TP
    Par alex4 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 17/11/2004, 08h00
  5. [Fichier Zip] Comment zipper un fichier
    Par caro_a dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/05/2004, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo