Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du meinst ByteArrayOutputStream? Von einem ByteOutputStream hab ich noch nie gehört.
Du kannst den Typ eines Objektes nicht verändern, aber der Typ einer Referenz muss nicht derselbe Typ wie der des referenzierten Objektes sein. Ein OutputStream-Variable kann auf einen ByteArrayOutputStream zeigen - muss es aber nicht tun. Du kannst versuchen einen Cast durchzuführen:
Code:
OutputStream out = ... // von irgendwoher
ByteArrayOutputStream byte = (ByteArrayOutputStream)out;
byte[] array = byte.toByteArray();
Aber das funktioniert nur, wenn "out" tatsächlich auf einen ByteArrayOutputStream zeigt, ansonsten gibt es eine Exception.
falls das der einzige Fall ist, kann ich damit leben.
Aber grundsätzlich: Das Umcasten funktioniert ja Grundsätzlich immer. Ich kann ja auch so was zB.
Code:
Vector myVector = (Vector)new String();
Sinnlos! aber was ich damit sagen will ist: dass er erst meckert wenn ich sowas machen will:
Code:
myVector.get(1);
Verstehst Du auf was ich hinaus will?
Also bezogen auf den ByteArrayStream: wenn ich sowas caste:
Code:
ByteArrayOutputStream myBAOS = (ByteArrayOutputStream)outputStream;
bytes=myBAOS.toByteArray();
[code]
ist dann sichergestellt, dass bytes=myBAOS.toByteArray(); auch dann funtioniert wenn outputStream einer von folgenden Streams ist: (ByteArrayOutputStream, FileOutputStream, FilterOutputStream, ObjectOutputStream, OutputStream, PipedOutputStream)
;-) Danke
Alles Blödsinn.
Ist dir eigentlich klar wie Java funktioniert?
Wenn etwas kein ByteArrayOutputStream ist dann kannst du es auch zu keinem casten.
Und wie kommst du darauf das Streams aus ByteArrays aufgebaut sind? :autsch:
Naja: Also 100Pro sicher bin ich mir ja da nich ABER solche sachen deutenb da schon drauf hin:
//Aus BAOS-Javadoc
protected byte[] -- buf The buffer where data is stored.
und
//Aus OS-Javadoc
void write(byte[] b)
Writes b.length bytes from the specified byte array to this output stream.
Ja und da denke ich mir halt das das so läuft?
NICHT GUT? :bahnhof:
Das sind nur Puffer :roll:
Du kannst dir auch selbst einen Stream machen der bei read() immer wieder eine Zufallszahl zurückliefert.
Klar warum man von dem kein byte[] bekommen kann?
Man sollte sich beim JDK.-Download immer die Version runterladen, welche zusätzlich den Quelltext beinhaltet. Dann sieht man den Quelltext (im Eclipse) wenn man dann auf OutputStream mit<STRG>klickt.