35

I need to convert a byte array to ByteArrayOutputStream so that I can display it on screen.

2
  • 5
    A ByteArrayOutputStream is meant to receive data. Are you sure you don't mean a ByteArrayInputStream? Commented Sep 2, 2013 at 14:30
  • With JDK/11, you can now use the utility provided to write the complete byte array directly. Commented Aug 10, 2018 at 15:17

3 Answers 3

63
byte[] bytes = ....;
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.write(bytes, 0, bytes.length);

Method description:

Writes len bytes from the specified byte array starting at offset off to this byte array output stream.

Sign up to request clarification or add additional context in comments.

Comments

0

You can't display a ByteArrayOutputStream. What I suspect you are trying to do is

byte[] bytes = ...
String text = new String(bytes, "UTF-8"); // or some other encoding.
// display text.

You can make ByteArrayOutputStream do something similar but this is not obvious, efficient or best practice (as you cannot control the encoding used)

Comments

0

With JDK/11, you can make use of the writeBytes(byte b[]) API which eventually calls the write(b, 0, b.length) as suggested in the answer by Josh.

/**
 * Writes the complete contents of the specified byte array
 * to this {@code ByteArrayOutputStream}.
 *
 * @apiNote
 * This method is equivalent to {@link #write(byte[],int,int)
 * write(b, 0, b.length)}.
 *
 * @param   b     the data.
 * @throws  NullPointerException if {@code b} is {@code null}.
 * @since   11
 */
public void writeBytes(byte b[]) {
    write(b, 0, b.length);
}

The sample code would simply transform into --

byte[] bytes = new byte[100];
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.writeBytes(bytes);

2 Comments

What's the difference between writeBytes(byte[]) and write(byte[])?
It's inheritet from OutputStream

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.