Java Tutorial

Java Control Statements

Object Oriented Programming

Java Built-in Classes

Java File Handling

Java Error & Exceptions

Java Multithreading

Java Synchronization

Java Networking

Java Collections

Java List Interface

Java Queue Interface

Java Map Interface

Java Set Interface

Java Data Structures

Java Collections Algorithms

Java Miscellaneous

Advanced Java

Java APIs & Frameworks

Java Useful Resources

Java - ByteArrayOutputStream



The ByteArrayOutputStream class stream creates a buffer in memory and all the data sent to the stream is stored in the buffer.

Following is the list of the constructors to be provided by ByteArrayOutputStream class.

Sr.No. Constructor & Description
1

ByteArrayOutputStream()

This constructor creates a ByteArrayOutputStream having buffer of 32 byte.

2

ByteArrayOutputStream(int a)

This constructor creates a ByteArrayOutputStream having buffer of the given size.

Once you have ByteArrayOutputStream object in hand, then there is a list of helper methods which can be used to write the stream or to do other operations on the stream.

Sr.No. Method & Description
1

public void reset()

This method resets the number of valid bytes of the byte array output stream to zero, so all the accumulated output in the stream will be discarded.

2

public byte[] toByteArray()

This method creates a newly allocated Byte array. Its size would be the current size of the output stream and the contents of the buffer will be copied into it. Returns the current contents of the output stream as a byte array.

3

public String toString()

Converts the buffer content into a string. Translation will be done according to the default character encoding. Returns the String translated from the buffer's content.

4

public void write(int w)

Writes the specified array to the output stream.

5

public void write(byte []b, int of, int len)

Writes len number of bytes starting from offset off to the stream.

6

public void writeTo(OutputStream outSt)

Writes the entire content of this Stream to the specified stream argument.

Example

Following is an example to demonstrate ByteArrayOutputStream and ByteArrayInputStream.

import java.io.*;
public class ByteStreamTest {

   public static void main(String args[])throws IOException {
      ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);

      while( bOutput.size()!= 10 ) {
         // Gets the inputs from the user
         bOutput.write("hello".getBytes());  
      }
      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");
      
      for(int x = 0; x < b.length; x++) {
         // printing the characters
         System.out.print((char)b[x]  + "   "); 
      }
      System.out.println("   ");

      int c;
      ByteArrayInputStream bInput = new ByteArrayInputStream(b);
      System.out.println("Converting characters to Upper case " );
      
      for(int y = 0 ; y < 1; y++ ) {
         while(( c = bInput.read())!= -1) {
            System.out.println(Character.toUpperCase((char)c));
         }
         bInput.reset(); 
      }
   }
}

Here is the sample run of the above program −

Output

Print the content
h   e   l   l   o   h   e   l   l   o      
Converting characters to Upper case 
H
E
L
L
O
H
E
L
L
O
java_files_io.htm
Advertisements