Java - ByteArrayOutputStream toString() method



Description

The Java ByteArrayOutputStream toString() method converts the stream's contents using the platform's default character set. The malformed-input and unmappable-character sequences are replaced by the default replacement string for the platform's default character set.

This method uses the platform's default character encoding unless a specific encoding is provided.

Declaration

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

public String toString()

Parameters

NA

Return Value

This method returns string decoded from the buffer's contents.

Exception

NA

Example - Using ByteArrayOutputStream toString() method

The following example shows the usage of Java ByteArrayOutputStream toString() 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 the default string representation of the stream using toString() method. Lastly in finally block, we close the stream using close() method.

ByteArrayOutputStreamDemo.java

package com.tutorialspoint;

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

public class ByteArrayOutputStreamDemo {
   public static void main(String[] args) throws IOException {
      String str = "";
      
      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);
         
         // converts buffers using default character set
         str = baos.toString();
         
         // print
         System.out.println(str);
         
      } 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 −

ABCDE

Example - Using ByteArrayOutputStream toString() method

The following example shows the usage of Java ByteArrayOutputStream toString() 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 the default string representation of the stream using toString() method. Lastly in finally block, we close the stream using close() method.

ByteArrayOutputStreamDemo.java

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);
         
         // converts buffers using default character set
         str = baos.toString();

         // print
         System.out.println(str);

      } 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 −

KA

Example - Using toString() to Convert Stream Data to a String

The following example shows the usage of Java ByteArrayOutputStream toString() method.

ByteArrayOutputStreamDemo.java

package com.tutorialspoint;

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

public class ByteArrayOutputStreamDemo {
   public static void main(String[] args) {
      // Create a ByteArrayOutputStream
      ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

      try {
         // Write some data to the stream
         outputStream.write("Hello, World!".getBytes());

         // Convert the stream content to a string using the default character encoding
         String content = outputStream.toString();

         // Print the string content
         System.out.println("String content: " + content);

         // Close the stream (optional for ByteArrayOutputStream)
         outputStream.close();
      } catch (IOException e) {
         System.err.println("IOException occurred: " + e.getMessage());
      }
   }
}

Output

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

String content: Hello, World!

Explanation

  • Writing Data− The string "Hello, World!" is written to the ByteArrayOutputStream as a byte array using the write() method.

  • Converting to String− The toString() method is called on the ByteArrayOutputStream to convert its contents to a string using the platform's default character encoding.

  • Displaying the Content− The resulting string is printed to the console.

  • Closing the Stream− The close() method is called for completeness, although it has no effect on ByteArrayOutputStream.

Key Points

  • Purpose of toString()− Converts the current contents of the ByteArrayOutputStream to a String, making it easy to process or display textual data.

  • Default Encoding− The toString() method uses the platform's default character encoding unless a specific encoding is provided via toString(String charsetName).

  • Use Case− Useful when working with text data stored in the ByteArrayOutputStream and you want to retrieve it as a readable string.

  • Efficiency− The toString() method avoids manual conversion of byte arrays to strings, simplifying the code and reducing errors.

java_bytearrayoutputstream.htm
Advertisements