Ich habe eine Klasse CBZip2OutputStream von "apache bzi2 library", es kann Binärdatenstrom in bzi2 Datenstrom verwandeln. Aber ich muss eine Zeichenfolge archivieren. Daher denke ich, ich sollte einen Eingabestream von diesem Ausgabestrom erstellen, diese Daten in Ausgabestrom schreiben und archivierte Daten aus dem Eingabestream lesen ... aber wie Ausgabestrom und Eingabestream verknüpfen?Java: OutputStream und InputStream
Antwort
Zuerst möchten Sie wahrscheinlich einen DataOutputStream: Er ist entworfen, um Primitive und Objekte zu nehmen und sie in Bytes umzuwandeln. Es behandelt auch Strings.
Als nächstes verwenden Sie Piped-E/A: PipedInputStream und PipedOutputStream. Sie können sie verwenden, um Streams miteinander zu verknüpfen, ähnlich wie bei der Eingabe von Pipes von einem Prozess in einen anderen über die Befehlszeile.
Sie können einfach aus dem Eingabestream lesen und in den Ausgabestream schreiben. Es ist eine gängige Praxis. IOUtils.copy() (aus jakarta commons) tut es, also müssen Sie die Schleife nicht implementieren.
Alternativ können Sie PipedInputStream und PipedOutputStream verwenden.
Sie können mehrere Methoden verwenden, um einen InputStream aus einem OutputStream zu erhalten.
- Schreiben Sie die Daten, um die Daten in einen Speicherpuffer (ByteArrayOutputStream) die byteArray bekommen und es wieder mit einem ByteArrayInputStream lesen. Dies ist der beste Ansatz, wenn Sie sicher sind, dass Ihre Daten in den Speicher passen.
- kopieren Sie Ihre Daten in eine temporäre Datei und lesen Sie sie zurück.
- Verwenden Sie Pipes: Dies ist der beste Ansatz sowohl für die Speichernutzung und Geschwindigkeit (Sie können die Vorteile der Multi-Core-Prozessoren nutzen) und auch die Standardlösung von Oracle.
- Verwenden Sie "Ringpuffer" oder Rohre durch eine externe Bibliothek.
Hier ist ein .
- 1. Byte [] zu InputStream oder OutputStream
- 2. Suchen/Ersetzen zwischen InputStream und OutputStream
- 3. Umgang mit InputStream und OutputStream über Bluetooth in Android
- 4. Java Socket schließend OutputStream
- 5. Python-Äquivalent von Java OutputStream?
- 6. Java InputStream zu ByteBuffer
- 7. Java Process InputStream Fehler?
- 8. Java InputStream Größe
- 9. So laden Sie einen Java OutputStream nach AWS S3
- 10. Lesen von InputStream aus dem Java-Prozess
- 11. HTTPUrlConnection-Fehler (OutputStream kann nach dem Lesen aus einem inputStream nicht geöffnet werden)
- 12. Blockiert ein OutputStream in Java? (Sockets)
- 13. OutputStream Inhalt der Datei löschen JAVA
- 14. Java-Zip-Archive aus vorhandenem OutputStream erstellen
- 15. Gibt es in Java einen Null OutputStream?
- 16. InputStream und OutOfMemory Fehler
- 17. Wo ist OutputStream Implementation
- 18. Wie spült man einen seriellen Java InputStream?
- 19. OutputStream in ByteArrayOutputStream konvertieren
- 20. Verwenden Object und Outputstream mit Filewriter
- 21. Jersey POST Anfragen und Schließen der InputStream
- 22. InputStream lesen liest nicht die Daten
- 23. Dateipfad/Name von InputStream
- 24. outputstream response.redirect binär
- 25. Android - Informationsleckfehler OutputStream
- 26. wkhtmltopdf outputstream & download - diaglog
- 27. Camel Jetty Component in Outputstream schreiben
- 28. Process InputStream
- 29. Wechseln von Writern auf einem OutputStream in Java
- 30. Wie schließe ich eine Liste von OutputStream in Java?