Posts

Showing posts with the label Wave

Convert OutputStream To ByteArrayOutputStream

Answer : There are multiple possible scenarios: a) You have a ByteArrayOutputStream, but it was declared as OutputStream. Then you can do a cast like this: void doSomething(OutputStream os) { // fails with ClassCastException if it is not a BOS ByteArrayOutputStream bos = (ByteArrayOutputStream)os; ... b) if you have any other type of output stream, it does not really make sense to convert it to a BOS. (You typically want to cast it, because you want to access the result array). So in this case you simple set up a new stream and use it. void doSomething(OutputStream os) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); bos.write(something); bos.close(); byte[] arr = bos.toByteArray(); // what do you want to do? os.write(arr); // or: bos.writeTo(os); ... c) If you have written something to any kind of OutputStream (which you do not know what it is, for example because you get it from a servlet), there is no way to get that information back. You...