Java - ByteArrayOutputStream toByteArray()



Description

The Java ByteArrayOutputStream toByteArray() method creates a newly allocated buffer with the size as the current size of this output stream.

Declaration

Following is the declaration for java.io.ByteArrayOutputStream.toByteArray() method −

public byte[] toByteArray()

Parameters

NA

Return Value

The method returns byte array from this output stream.

Exception

Example 1

The following example shows the usage of Java ByteArrayOutputStream toByteArray() method. We've created a ByteArrayOutputStream reference and then initialized it with ByteArrayOutputStream object. Now we've written a bytearray to output stream using write() method and print each byte by iterating the byte array retrieved using toByteArray() method. Lastly in finally block, we close the stream using close() method.

package com.tutorialspoint;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class ByteArrayOutputStreamDemo {
   public static void main(String[] args) throws IOException {
      byte[] bs = {65, 66, 67, 68, 69};
      ByteArrayOutputStream baos = null;      
      try {
         
         // create new ByteArrayOutputStream
         baos = new ByteArrayOutputStream();
      
         // write byte array to the output stream
         baos.write(bs);
            
         // for each byte in the buffer
         for (byte b : baos.toByteArray()) {            
            // print every byte
            System.out.println(b);
         }
         
      } catch(Exception e) {
         // if I/O error occurs
         e.printStackTrace();
      } finally {
         if(baos!=null)
            baos.close();
      }   
   }
}

Output

Let us compile and run the above program, this will produce the following result −

65
66
67
68
69

Example 2

The following example shows the usage of Java ByteArrayOutputStream toByteArray() method. We've created a ByteArrayOutputStream reference and then initialized it with ByteArrayOutputStream object. Now we're writing multiple value to output stream and print each byte by iterating the byte array retrieved using toByteArray() method. Lastly in finally block, we close the stream using close() method.

package com.tutorialspoint;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class ByteArrayOutputStreamDemo {
   public static void main(String[] args) throws IOException {
      ByteArrayOutputStream baos = null;      
      try {
         String str = "";
         
         // create new ByteArrayOutputStream
         baos = new ByteArrayOutputStream();
         
         // writing bytes to output stream
         baos.write(75);
         baos.write(65);
         
         // for each byte in the buffer
         for (byte b : baos.toByteArray()) {            
            // print every byte
            System.out.println(b);
         }
      } catch(Exception e) {
         // if I/O error occurs
         e.printStackTrace();
      } finally {
         if(baos!=null)
            baos.close();
      }   
   }
}

Output

Let us compile and run the above program, this will produce the following result −

75
65
java_bytearrayoutputstream.htm
Advertisements