Convert Outputstream to Byte Array in Java

Convert OutputStream to byte array in java

In this post, we will see how to convert OutputStream to Byte array in Java.

Convert OutputStream to Byte array in Java

Here are steps to convert OutputStream to Byte array in java.

  • Create instance of ByteArrayOutputStream baos
  • Write data to ByteArrayOutputStream baos
  • Extract byte[] using toByteArray() method.
package org.arpit.java2blog;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class OutputStreamToByteArray {

    public static void main(String[] args) throws IOException {

        String str="Java2blog";

        // Creates OutputStream
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        // Get bytes from String
        byte[] array = str.getBytes();

        // Write data to OutputStream
        baos.write(array);

        // Convert OutputStream to byte array
        byte bytes[] = baos.toByteArray();

        System.out.println("Print output:");

        for(int x = 0; x < bytes.length; x++) {
            // Print original characters
            System.out.print((char)bytes[x]  + "");
        }
        System.out.println("   ");
    }
}

Output:

Print output:
Java2blog

Convert OutputStream to ByteBuffer in Java

To convert OutputStream to ByteBuffer in Java, we need to add one more step to above method.

  • Create instance of ByteArrayOutputStream baos
  • Write data to ByteArrayOutputStream baos
  • Extract byte[] using toByteArray() method.
  • Convert byte array to ByteBuffer using ByteBuffer.wrap(byte[]) method.
package org.arpit.java2blog;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;

public class OutputStreamToByteBuffer {

    public static void main(String[] args) throws IOException {

        String str="Java2blog";

        // Creates OutputStream
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        // Get bytes from String
        byte[] array = str.getBytes();

        // Write data to OutputStream
        baos.write(array);

        // Get bytes[] from ByteArrayOutputStream
        byte bytes[] = baos.toByteArray();

        // Convert bytep[] to ByteBuffer
        ByteBuffer bb= ByteBuffer.wrap(bytes);

        System.out.println(bb);
    }
}

Output:

java.nio.HeapByteBuffer[pos=0 lim=9 cap=9]

That's all about how to convert Outputstream to Byte Array in Java.

[social_share share_on="facebook,twitter,linkedin,whatsapp"][post_navigator in_same_term="true"]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.