
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - ByteArrayOutputStream write(byte[] b, int off, int len) method
Description
The Java ByteArrayOutputStream write(byte[] b, int off, int len) method writes a specific portion of a byte array (cbuf) into the output stream. The off parameter specifies the starting position in the array, and the len parameter specifies the number of bytes to write.
Declaration
Following is the declaration for java.io.ByteArrayOutputStream.write(byte[] b, int off, int len) method −
public void write(byte[] b, int off, int len)
Parameters
b − The specified buffer.
off − Offset to start in the data.
len − The length of the bytes to write.
Return Value
This method doesn't return any value.
Exception
NA
Example - Using ByteArrayOutputStream write(byte[] b, int off, int len) method
The following example shows the usage of Java ByteArrayOutputStream write(byte[] b, int off, int len) method. We've created a ByteArrayOutputStream reference and then initialized it with ByteArrayOutputStream object. Now we've written a part of a bytearray 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(); // write byte array to the output stream baos.write(bs, 2, 3); // 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 −
CDE
Example - Using ByteArrayOutputStream write(byte[] b, int off, int len) method
The following example shows the usage of Java ByteArrayOutputStream write(byte[] b, int off, int len) 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 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 baos.write(bs, 0, bs.length); // 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(byte[] cbuf, int off, int len) to Write a Portion of a Byte Array
The following example shows the usage of Java ByteArrayOutputStream write(byte[] cbuf, int off, int len) method.
ByteArrayOutputStreamDemo.java
package com.tutorialspoint; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; public class ByteArrayOutputStreamDemo { public static void main(String[] args) { // Create a ByteArrayOutputStream ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { // Create a byte array byte[] byteArray = "Hello, ByteArrayOutputStream!".getBytes(StandardCharsets.UTF_8); // Write a portion of the byte array (from index 7, write 18 bytes) outputStream.write(byteArray, 7, 18); // 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: ByteArrayOutputStr
Explanation
Creating a Byte Array− The string "Hello, ByteArrayOutputStream!" is converted into a byte array using UTF-8 encoding.
Writing a Subset of the Byte Array− The write(byte[] cbuf, int off, int len) method writes part of the byte array to the stream. In this example, off = 7 (start from the 7th index, which corresponds to the byte 'B') and len = 18 (write 18 bytes starting from 'B'). This means the substring "ByteArrayOutputStr" is written to the stream.
Retrieving the Content− The content of the ByteArrayOutputStream is converted back to a string using toString(String charsetName).
Closing the Stream− The close() method is called for consistency, although it has no effect on ByteArrayOutputStream.
Key Points
Selective Writing− The write(byte[] cbuf, int off, int len) method allows writing a specific portion of the byte array, which is useful when only part of the data needs to be written.
Efficiency− Instead of creating a new byte array to hold a subset of the data, you can use this method to write directly from the original array.
Error= Handling− If off or len exceeds the bounds of the array, or if off + len > cbuf.length, an IndexOutOfBoundsException will be thrown.
Use Case− Commonly used when processing or manipulating large byte arrays, where only a portion of the data needs to be written to the stream.