Ajouter un commentaire

manurevait

fredericmazue wrote:
Je ne comprends rien au délire que tu as cité. Pour faire ce que tu veux, il suffit de créer un FileOutputStream en donnant le nom de fichier zip à créer, puis de créer un ZipOutputStream en donnant le FileOutputStream précedemment créé au constructeur du ZipOutputStream. C'est tout ce qu'il y a à faire.

Bonjour,
Voici le code utilisé:

try {
      	
      		// création d'un flux d'écriture sur fichier
			FileOutputStream dest = new FileOutputStream( zipFileName+ ".zip");
			 
			// calcul du checksum : Adler32 (plus rapide) ou CRC32
			CheckedOutputStream checksum = new CheckedOutputStream(dest, new Adler32());
			 
      		// création d'un buffer d'écriture
			BufferedOutputStream buff = new BufferedOutputStream(checksum);
			 
      		// création d'un flux d'écriture Zip
			ZipOutputStream out = new ZipOutputStream(buff);			
         	// spécification de la méthode de compression
			out.setMethod(ZipOutputStream.DEFLATED);

			// spécifier la qualité de la compression 0..9
			out.setLevel(Deflater.BEST_COMPRESSION);
         
         	// buffer temporaire des données ‡ écriture dans le flux de sortie
			byte data[] = new byte[BUFFER];
			
           		// création d'un flux de lecture
	            FileInputStream fi = new FileInputStream(source);
	            
	            // création d'un tampon de lecture sur ce flux
	            BufferedInputStream buffi = new BufferedInputStream(fi, BUFFER);
	            
	            // création d'en entrée Zip pour ce fichier
	            ZipEntry entry = new ZipEntry(unAccent(source));
	            
	            // ajout de cette entrée dans le flux d'écriture de l'archive Zip
	            out.putNextEntry(entry);
	            
	            // écriture du fichier par paquet de BUFFER octets
	            // dans le flux d'écriture
	            int count;
	            while((count = buffi.read(data, 0, BUFFER)) != -1) {
	               out.write(data, 0, count);
				}
	            
				// Close the current entry
         		out.closeEntry();
         		
         	    // fermeture du flux de lecture
				buffi.close();

			// fermeture du flux d'écriture
			out.close();
			buff.close();
			checksum.close();
			dest.close();
			retour = 15;

		// traitement de toute exception         
		} catch(Exception e) {
			e.printStackTrace();
			test.log_erreur( e.getMessage(), this );
			return "pb"+retour;
		}
		return "0";
      
   }

Le recepteur du fichier me dit que ce dernier n'est pas dans le bon format (bytes et non caractère) :!:

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 U   U   GGG   M   M  BBBB   N   N 
U U G MM MM B B NN N
U U G GG M M M BBBB N N N
U U G G M M B B N NN
UUU GGG M M BBBB N N