Le moyen privilégié pour l'utilisation de Java ZipOutputStream et BufferedOutputStream

En Java importe-t-il si j'instancie un ZipOutputStream premier, ou le BufferedOutputStream en premier? Exemple:

FileOutputStream dest = new FileOutputStream(file);
ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(dest));

//use zip output stream to write to

Ou:

FileOutputStream dest = new FileOutputStream(file);
BufferedOutputStream out = new BufferedOutputStream(new ZipOutputStream(dest));

//use buffered stream to write to

Dans mon non-scientifique timings je n'arrive pas à dire beaucoup de choses ici. Je ne peux pas voir quoi que ce soit dans l'API Java qui dit que si l'un de ces moyens est nécessaire ou préférable. Tous les conseils? Il semble que la compression de la sortie de la première puis de mise en mémoire tampon pour l'écrit serait plus efficace.

  • Théoriquement, la compression puis de mise en mémoire tampon va être plus rapide. Cependant, GZipOutputStream a une mémoire tampon interne, afin de ne pas écrire des octets pour le flux sous-jacent. En fonction du type de flux (par exemple, fichier vs socket) et par la taille des tampons, vous peut ou peut ne pas voir la différence.
InformationsquelleAutor jjathman | 2013-01-22