Java - ByteArrayOutputStream write(int k) method



Description

The Java ByteArrayOutputStream write(int k) method writes the specified byte (represented as an integer) to the output stream. The lower 8 bits of the int value are written, while the upper bits are ignored.

Declaration

Following is the declaration for java.io.ByteArrayOutputStream.write(int k) method −

public void write(int k)

Parameters

  • k −The specified byte as integer in the range of 0-255.

Return Value

This method doesn't return any value.

Exception

NA

Example - Using ByteArrayOutputStream write(int k) method

The following example shows the usage of Java ByteArrayOutputStream write(int k) method. We've created a ByteArrayOutputStream reference and then initialized it with ByteArrayOutputStream object. Now we've written few values to output stream using write() method and print the string representation of the stream using toString() 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 {
      String str = "";      
      byte[] bs = {65, 66, 67, 68, 69};
      ByteArrayOutputStream baos = null;      
      try {
         
         // create new ByteArrayOutputStream
         baos = new ByteArrayOutputStream();
      
         // writing bytes to output stream
         baos.write(75);
         baos.write(65);
         
         // converts buffer to string
         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 ByteArrayOutputStream write(int k) method

The following example shows the usage of Java ByteArrayOutputStream write(int k) method. We've created a ByteArrayOutputStream reference and then initialized it with ByteArrayOutputStream object. Now we've written complete bytearray to output stream using write() method in a for loop and print the string representation of the stream using toString() 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 {
      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
         for(int i=0; i< bs.length; i++){
            baos.write(bs[i]);
         }         
         
         // converts buffer to string
         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 write(int k) to Write Individual Bytes to the Stream

The following example shows the usage of Java ByteArrayOutputStream write(int k) 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 individual bytes to the stream
         outputStream.write(72); // ASCII value of 'H'
         outputStream.write(101); // ASCII value of 'e'
         outputStream.write(108); // ASCII value of 'l'
         outputStream.write(108); // ASCII value of 'l'
         outputStream.write(111); // ASCII value of 'o'

         // Convert the stream content to a string and print it
         String result = outputStream.toString("UTF-8");
         System.out.println("Written content: " + result);

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

Written content: Hello

Explanation

  • Writing Bytes− The write(int b) method is used to write individual bytes to the stream. Each byte corresponds to the ASCII value of a character.

  • Converting to String− After writing, the contents of the ByteArrayOutputStream are converted to a string using the toString(String charsetName) method.

  • Output− The result is the string "Hello", constructed from the written bytes.

  • Closing the Stream− Although closing is optional for ByteArrayOutputStream, it is included for completeness.

Key Points

  • Byte-Level Writing− The write(int b) method writes only the least significant 8 bits of the int value, so values outside the range 0255 are truncated.

  • Purpose− Useful when you need to write data byte-by-byte, especially for ASCII characters or binary data.

  • Encoding− The conversion to a string using UTF-8 ensures proper representation of the byte data as a human-readable string.

  • Use Case− Commonly used for constructing data streams programmatically or when dealing with byte-specific data.

java_bytearrayoutputstream.htm
Advertisements