Ich möchte ein Programm ausführen und während es läuft, lesen Sie es in der Ausgabe und Pipe out die Ausgabe in eine gezippte Datei. Die Ausgabe des Programms kann ziemlich groß sein, so dass die Idee darin besteht, nicht zu viel im Speicher zu halten - nur um es an den Zip zu senden, wenn ich es bekomme.Wie wird ein Eingabestream in eine gezippte Datei geleitet, wenn sie mit Java eingelesen wird?
7
A
Antwort
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);
}
In anderen Worten:
- Sie erstellen eine ZipOutputStream, die Datei geben Sie schreiben wollen.
Sie erstellen einen ZipEntry, der eine Datei innerhalb dieser ZIP-Datei darstellt. , d. H. Wenn Sie myFile.zip öffnen und dort 3 Dateien sind, ist jede Datei ein ZipEntry.
Sie setzen, dass ZipEntry in Ihr ZipOutputStream
- einen Bytepuffer Erstellen Sie Ihre Daten in zu lesen.
- Lesen Sie von Ihrem InputStream in Ihren Byte-Puffer, und merken Sie sich die Anzahl.
- Während die Anzahl nicht -1 ist, schreibe das Bytebyffer in deinen zipStream.
- Lesen Sie die nächste Zeile.
Schließen Sie Ihre Streams, wenn Sie fertig sind. Wickeln Sie es nach Belieben in eine Methode ein.
Verwandte Themen
- 1. PI ACE NextEvent() wird nicht eingelesen (.vb)
- 2. Warum wird gezippte HTML-Datei ohne JS und CSS angezeigt?
- 3. Wie lese ich eine gezippte CSV-Datei?
- 4. Wie öffne ich eine HTML-Datei, wenn sie geändert wird?
- 5. Wie wird die Eingabe in einen src_block als stdin geleitet?
- 6. serve gezippte Javascript-Datei
- 7. Wie wird ein Mungo-Modell in einer separaten Datei definiert, wenn die Datei nicht exportiert wird?
- 8. Wie wird diese Datei in Java übergeben?
- 9. Führen Sie einen Shell-Befehl, wenn eine Datei hinzugefügt wird
- 10. Wird eine temporäre Datei dauerhaft, wenn ich sie verschiebe?
- 11. Java-Methode, die in eine Datei schreibt, tut nichts, wenn sie von einer JSP aufgerufen wird
- 12. Wird eine Datei mit newBufferedReader geöffnet, wenn eine Ausnahme auftritt?
- 13. C++ einfache Datei eingelesen zu Array Frage
- 14. Wie wird ein Solr-Index in eine Datei gesichert?
- 15. graphlab: Wie man eine gezippte Datei in den SFrame lädt
- 16. Wie wird eine Fallklasse verwendet, wenn eine Hierarchie benötigt wird?
- 17. Warum eine Schaltfläche geklickt wird, wenn ein Formular gesendet wird?
- 18. Wie wird ein Zeilenumbruch in Java gedruckt?
- 19. Lesen, wenn eine Taste gedrückt wird Java
- 20. So löschen Sie eine Datei, wenn die Anwendung geschlossen wird
- 21. Wird die ausführbare Datei größer, wenn eine ganze Klassendefinition in ein ".h" eingefügt wird?
- 22. Wie wird Objektcode in eine ausführbare Datei kopiert, wenn eine Verbindung zur statischen Bibliothek hergestellt wird?
- 23. Java - Lesen von einer Datei. Eingabestream vs. Reader
- 24. Wie wird eine Python-Datei automatisch aktualisiert, wenn sie geändert wird?
- 25. ersetzen Sie ein Zeichenfolge-Segment aus dem Eingabestream
- 26. Wenn Flash eine Datei herunterlädt, wird sie zwischengespeichert?
- 27. Wie erhalten Sie eine Methode, die aufgerufen wird, wenn ein DBGrid angezeigt wird?
- 28. Wie wird Code ausgeführt, wenn ein Python-Skript geschlossen wird?
- 29. Wann wird Manifest-Datei in Java erstellt?
- 30. Wenn eine nicht verfolgte Datei hinzugefügt wird, wird sie nicht sofort in die Staging-Ebene verschoben?