Konvertieren Sie Inhalte Von Einem ByteArrayInputStream Zu String
Lese ich dieser Beitrag aber ich bin nicht folgenden. Ich habe gesehen, diese aber nicht gesehen haben, ein gutes Beispiel der Konvertierung eines ByteArrayInputStream
zu String
mit einem ByteArrayOutputStream
.
Zum abrufen des Inhalts von einem ByteArrayInputStream
als String
ist mit einem ByteArrayOutputstream
empfohlen oder ist es ein bevorzugter Weg?
Ich überlegte dieses Beispiel und erweitern ByteArrayInputStream
und nutzen eine Decorator zur Erhöhung der Funktionalität zur Laufzeit. Interesse an diesem wird eine bessere Lösung für den Einsatz einer ByteArrayOutputStream
?
Sie wollen wahrscheinlich ein
Haben Sie wirklich einen ByteArrayInputStream (was bedeutet, Sie haben ein byte[]) oder haben Sie nur einen InputStream?
Ich habe wirklich einen ByteArrayInputStream, dessen Konstruktor übergeben wird ein array von bytes (in unterschiedlicher Größe)
Es war eine Antwort auf den Beitrag im zweiten link die Verwendung eines InputstreamReader:
Aber Sie können Lesen Sie einfach weiter aus, bis es leer ist.
InputStreamReader
, wie beschrieben im zweiten link, den Sie gab. Ein ByteArrayOutputStream
nicht konvertieren des Byte zu Zeichen.Haben Sie wirklich einen ByteArrayInputStream (was bedeutet, Sie haben ein byte[]) oder haben Sie nur einen InputStream?
Ich habe wirklich einen ByteArrayInputStream, dessen Konstruktor übergeben wird ein array von bytes (in unterschiedlicher Größe)
Es war eine Antwort auf den Beitrag im zweiten link die Verwendung eines InputstreamReader:
The problem with this is that it reads only up to and including the first line separator. It assumes that the string you're looking for does not contain any line separators. Often that's true, but if not, this won't really work.
Warum ich mich nicht weiter mit diesem Beispiel.Aber Sie können Lesen Sie einfach weiter aus, bis es leer ist.
InformationsquelleAutor Mushy | 2014-06-05
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
ByteArrayOutputStream
Lesen können von jedemInputStream
und am Ende die Ausbeute einesbyte[]
.Jedoch mit einem
ByteArrayInputStream
ist es einfacher:Für eine
ByteArrayInputStream
available()
ergibt sich die Gesamtzahl von bytes.Antwort zu Kommentar: mit ByteArrayOutputStream
Hier kann ein beliebiger InputStream.
Ich habe verlängert die Antwort. Im Prinzip Schleifen Lesen von der
InputStream
und schreiben in derByteArrayOutputStream
. Aus der tradition heraus die I/O-Puffer ist ein ritual der Größe eine Potenz von 2 ist.Stimme mit power of 2 Größe; ich mag das und danke.
InformationsquelleAutor Joop Eggen
Warum niemand erwähnt
org.apache.commons.io.IOUtils
?Nur eine Zeile code.
import
Aussagen so, dass nicht jeder hat, nach Ihnen zu suchen. Sorry... es ist nicht nur eine Zeile code mehr.;)InformationsquelleAutor Cherry
Verwenden
Scanner
und übergeben ihm den Konstruktor derByteArrayInputStream
dann Lesen Sie die Daten vom Scanner , überprüfen Sie dieses Beispiel :XML
oderHTML
doc, kann ich es Lesen ohne Grenzen?Ja, es gibt keine Einschränkung .
InformationsquelleAutor Mifmif
Base64-Codierung verwenden
Vorausgesetzt, Sie haben Ihre ByteArrayOutputStream :
Sehen http://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html
Es ist wichtig zu sagen, dass die Base64.Encoder wurde veröffentlicht in Java 8. 🙂
Es sollte String s = new String(Base64.getEncoder().encode(baos.toByteArray())); trotzdem danke.
InformationsquelleAutor Bowser Jr.