Avatar ·

Wie konvertiere ich InputStream in byte[] in Java? Alle Methoden

Hallo zusammen! Ich bin neu in Java und habe folgendes Problem: Ich muss alle Daten aus einem InputStream (z.B. aus einer Datei oder einer HTTP-Antwort) lesen und als byte[]-Array erhalten. Aber ich weiß nicht, wie ich das richtig machen soll.

\n\n

Hier ist, was ich versucht habe:

\n\n
InputStream input = new FileInputStream("data.bin");\nbyte[] data = ??? // Wie bekomme ich das Byte-Array?\n
\n\n

Das Problem ist, dass InputStream mir nicht im Voraus die Datengröße mitteilt. Die Methode available() gibt nicht die vollständige Größe zurück, sondern nur das, was bereits ohne Blockierung gelesen werden kann. Ich habe versucht, in einer Schleife zu lesen, aber der Code wird unübersichtlich und bricht oft ab.

\n\n

Ich habe von ByteArrayOutputStream gehört, verstehe aber nicht, wie man es richtig verwendet. Außerdem habe ich von readAllBytes() gehört.