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) :!:
Bonjour,
Voici le code utilisé:
Le recepteur du fichier me dit que ce dernier n'est pas dans le bon format (bytes et non caractère) :!: