Je veux exécuter un programme et comme il s'exécute lire dans sa sortie et diriger la sortie dans un fichier compressé. La sortie du programme peut être assez grande, donc l'idée est de ne pas retenir trop de mémoire - juste pour l'envoyer dans le zip quand je l'ai.Comment acheminer un flux d'entrée vers un fichier compressé tel qu'il est lu avec Java?
7
A
Répondre
8
ZipOutputStream targetStream = new ZipOutputStream(fileToSaveTo);
ZipEntry entry = new ZipEntry(nameOfFileInZipFile);
targetStream.putNextEntry(entry);
byte[] dataBlock = new byte[1024];
int count = inputStream.read(dataBlock, 0, 1024);
while (count != -1) {
targetStream.write(dataBlock, 0, count);
count = inputStream.read(dataBlock, 0, 1024);
}
En d'autres termes:
- Vous créez un ZipOutputStream, en lui donnant le fichier que vous voulez écrire.
Vous créez un ZipEntry, qui constitue un fichier dans ce fichier zip. Lorsque vous ouvrez myFile.zip et qu'il y a 3 fichiers, chaque fichier est un ZipEntry.
que vous mettez dans votre ZipEntry que ZipOutputStream
- Créer un tampon d'octets à lire vos données dans.
- Lisez depuis votre InputStream dans votre tampon d'octets, et souvenez-vous du nombre.
- Alors que le compte n'est pas -1, écrivez cet octet byffer à votre zipStream.
- Lire la ligne suivante.
Fermez vos flux lorsque vous avez terminé. Envelopper dans une méthode comme bon vous semble.
Questions connexes
- 1. Décompression d'un flux compressé vers un emplacement réseau
- 2. Comment acheminer l'entrée via grep vers un autre utilitaire?
- 3. Comment décompresser un fichier compressé avec fusecompress/lzo?
- 4. Comment écrire un flux RSS avec Java?
- 5. Acheminer les fichiers avec vbscript d'un gestionnaire .net vers asp.dll
- 6. Données POST d'un fichier texte (lu par un client de bureau) vers un serveur ASP .NET
- 7. Figure comment il est compressé?
- 8. Quand le fichier web.config est-il lu?
- 9. comment rechercher et remplacer un tel cas
- 10. JavaSound écrit dans un fichier audio avec un flux
- 11. Quel est le moyen le plus simple de convertir un fichier wav compressé en un fichier wav non compressé en C# ou en C++?
- 12. Convertir un flux audio en tableau d'octets WAV en Java sans fichier temporaire
- 13. Renommer un fichier/dossier dans un fichier zip en Java?
- 14. Modifier un fichier XML dans un fichier jar avec Java
- 15. Un outil de ligne de commande Unix standard pour acheminer vers un socket
- 16. pas un tel fichier à charger - openid/extensions/sreg
- 17. Comment devrais-je imprimer un caractère particulier dans le fichier après avoir lu le fichier?
- 18. Comment écrire/lire des bits de/vers un flux? (C#)
- 19. Est-ce que Microsoft Windows Workflow peut acheminer vers des stations de travail spécifiques?
- 20. en utilisant jpeglib pour le flux octet compressé JPEG
- 21. Comment télécharger un fichier vers un service WCF?
- 22. ZipInputStream ne signale pas * réel * (c'est-à-dire compressé) octets lu
- 23. Sortir vers un fichier texte
- 24. Comment lancer un flux RTP dans un appel SIP/SDP
- 25. Passage du flux de sortie PHP vers Java
- 26. Sauvegardes SQL dans un dossier compressé
- 27. Java - Comment savoir si un nom de fichier est valide?
- 28. Comment analyser un flux
- 29. Utilisation du proxy Apache pour acheminer le trafic vers tinyproxy
- 30. Comment mettre en cache un fichier WSDL avec Java-WS