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

Java Discussion :

Compression et décompression fichier


Sujet :

Java

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Points : 91
    Points
    91
    Par défaut Compression et décompression fichier
    bonjour,

    je suis en train de faire une appli avec laquelle je dois pouvoir compresser et decompresser un fichier (par ex un fichier excel)

    la seule chose que jai c'est une methode de décompression:

    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
     
    public static byte[] decompression(final byte[] input,final int bufferLength){
    		if (null == input) {
    	           // Error, post message
    	          // JsfUtils.postSingleMessage(FacesMessage.SEVERITY_ERROR, null, "borderaux_data_download_error");
    			System.out.println("erreur vide");
    	       }
     
    	       // Create the decompressor and give it the data to compress
    	       final Inflater decompressor = new Inflater();
     
    	       decompressor.setInput(input);
     
    	       // Create an expandable byte array to hold the decompressed data
    	       final ByteArrayOutputStream baos = new ByteArrayOutputStream(input.length);
     
    	       // Decompress the data
    	       final byte[] buf = new byte[bufferLength];
     
    	       try {
    	           while (!decompressor.finished()) {
    	               int count = decompressor.inflate(buf);
    	               baos.write(buf, 0, count);
    	           }
    	       } catch (DataFormatException ex) {
    	         //  logger.error("Problem decompressing.", ex);
    	       }
     
    	       try {
    	           baos.close();
    	       } catch (IOException ex) {
    	         //  logger.error("Problem closing stream.", ex);
    	       }
     
    	       return baos.toByteArray();
     
    	}
    si j'ai bien compris... il faut en paramètre entre le fichier a décompresser mais qui a ete converti en tableau de byte.
    et en sorti il faut que ce tableau soit reconverti en fichier...

    le problème c'est que j'arrive pas a trouvé comment on fait cette conversion... je sais qu'on a deja poser al question mais je ne compren pas les sites que j'ai trouvé (http://anisfrikha.developpez.com/tut...ava-io/#LIII-A

    Est-ce que quelqu'un peut m'aider s'il vous plaît parce que je commence a craquer ....

  2. #2
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Points : 91
    Points
    91
    Par défaut
    bon probleme résolu j'ai trouvé beaucoup simple que je pensais.
    Juste faire un traitement de flux avec un Inflater ou un Deflater qui intervient entre:

    ex pour la compression:
    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
     
    	public void compresser (String source , String dest) throws IOException{
     
    		// flux d'entree
    		FileInputStream fis = new FileInputStream(source);
    		BufferedInputStream bis = new BufferedInputStream(fis);
     
     
    		//flux de sortie
    		FileOutputStream fos = new FileOutputStream(dest);
    		BufferedOutputStream bos = new BufferedOutputStream(fos);
     
    		// le compresseur
    		Deflater deflate = new Deflater(Deflater.BEST_COMPRESSION);
    		DeflaterOutputStream dos = new DeflaterOutputStream(bos,deflate,SIZE);
     
    		byte[] b = new byte[SIZE];
     
    		int count;
    		while((count =bis.read(b,0,SIZE))!=-1){
    			dos.write(b,0,count);
    		}
     
    		bis.close();
    		dos.close();
    		bos.close();
     
    	}
    voila!

  3. #3
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    byte[] => File :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FileOutputStream fos = new FileOutputStream(new File("mon_fichier.txt"));
    fos.write(b);
    fos.close();
    File => byte[] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    b = new bute[1024];
    FileInputStream fis = new FileInputStream(new File("mon_fichier.txt"));
    fis.read(b);
    //Faire le nombre de read necessaires pour lire le fichier en entier
    fis.close();
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compresser et Décompresser un fichier ZIP
    Par AAWOOPY56 dans le forum AIX
    Réponses: 1
    Dernier message: 16/02/2010, 15h32
  2. Compression d'un fichier html
    Par boteha dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 13/06/2006, 15h06
  3. logiciel pour compresser et décompresser tout les formats
    Par vampyer972 dans le forum Autres Logiciels
    Réponses: 12
    Dernier message: 28/02/2006, 20h29

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