
- 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 writeTo(OutputStream out) method
Description
The Java ByteArrayOutputStream writeTo(OutputStream out) method writes the contents of the current ByteArrayOutputStream to another OutputStream. This is useful when you want to transfer data stored in a ByteArrayOutputStream to another stream, such as a file or a network socket.
Declaration
Following is the declaration for java.io.ByteArrayOutputStream.writeTo(OutputStream out) method −
public void writeTo(OutputStream out)
Parameters
out − The specified output stream to be written to
Return Value
This method doesn't return any value.
Exception
NullPointerException − if out is null.
IOException − If an I/O error occurs.
Example - Using ByteArrayOutputStream writeTo(OutputStream out) method
The following example shows the usage of Java ByteArrayOutputStream write(int k) method. We've created OutputStream and ByteArrayOutputStream references and then initialized them with ByteArrayOutputStream object. Now we've written a byte array to ByteArrayOutputStream object using write() method and then using writeTo() method, we've copied the values of ByteArrayOutputStream object to the OutputStream object and print the string representation of the output stream using toString() method. Lastly in finally block, we close the streams using close() method.
package com.tutorialspoint; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; public class ByteArrayOutputStreamDemo { public static void main(String[] args) throws IOException { byte[] bs = {65, 66, 67, 68, 69, 70, 71, 72}; OutputStream os = null; ByteArrayOutputStream baos = null; try { // create new output stream os = new ByteArrayOutputStream(); // create new ByteArrayOutputStream baos = new ByteArrayOutputStream(); // write buffer to the byte array output stream baos.write(bs); // write to the output stream baos.writeTo(os); // print the byte as default character set System.out.println(os.toString()); } catch(Exception e) { // if I/O error occurs e.printStackTrace(); } finally { if(baos!=null) baos.close(); if(os!=null) os.close(); } } }
Output
Let us compile and run the above program, this will produce the following result −
ABCDEFGH
Example - Using ByteArrayOutputStream writeTo(OutputStream out) method
The following example shows the usage of Java ByteArrayOutputStream writeTo(OutputStream out) method. We've created OutputStream and ByteArrayOutputStream references and then initialized them with ByteArrayOutputStream object. Now we've written a few values to ByteArrayOutputStream object using write() method and then using writeTo() method, we've copied the values of ByteArrayOutputStream object to the OutputStream object and print the string representation of the output stream using toString() method. Lastly in finally block, we close the streams using close() method.
package com.tutorialspoint; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; public class ByteArrayOutputStreamDemo { public static void main(String[] args) throws IOException { OutputStream os = null; ByteArrayOutputStream baos = null; try { // create new output stream os = new ByteArrayOutputStream(); // create new ByteArrayOutputStream baos = new ByteArrayOutputStream(); // write buffer to the byte array output stream baos.write(65); baos.write(66); // write to the output stream baos.writeTo(os); // print the byte as default character set System.out.println(os.toString()); } catch(Exception e) { // if I/O error occurs e.printStackTrace(); } finally { if(baos!=null) baos.close(); if(os!=null) os.close(); } } }
Output
Let us compile and run the above program, this will produce the following result −
AB
Example - Using writeTo(OutputStream out) to Write Data to a FileOutputStream
The following example shows the usage of Java ByteArrayOutputStream writeTo(OutputStream out) method.
ByteArrayOutputStreamDemo.java
package com.tutorialspoint; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; public class ByteArrayOutputStreamDemo { public static void main(String[] args) { // Create a ByteArrayOutputStream ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { // Write some data to the ByteArrayOutputStream byteArrayOutputStream.write("Hello, World!".getBytes()); // Create a FileOutputStream to write the data to a file try (FileOutputStream fileOutputStream = new FileOutputStream("output.txt")) { // Write the content of ByteArrayOutputStream to the FileOutputStream byteArrayOutputStream.writeTo(fileOutputStream); System.out.println("Data has been written to 'output.txt'."); } // Close the ByteArrayOutputStream (optional for ByteArrayOutputStream) byteArrayOutputStream.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 −
Data has been written to 'output.txt'.
File Output (output.txt)
Hello, World!
Explanation
Writing Data− "Hello, World!" is written to the ByteArrayOutputStream using the write(byte[] b) method.
Creating a Target Stream− A FileOutputStream is created to write the content of the ByteArrayOutputStream to a file named output.txt.
Using writeTo(OutputStream out)− The writeTo() method is called to transfer the data from the ByteArrayOutputStream to the FileOutputStream.
Closing Resources− The FileOutputStream is closed automatically using the try-with-resources statement. The ByteArrayOutputStream is also closed (optional for this class).
Result− The content of the ByteArrayOutputStream is saved to the file output.txt.
Key Points
Purpose of writeTo()− Transfers the data stored in the ByteArrayOutputStream to another OutputStream efficiently.
Reusability− Allows reusing the same data buffer in ByteArrayOutputStream for writing to multiple streams.
Use Case− Useful for writing data to files, network sockets, or other types of output streams.
Efficiency− Avoids manual iteration over the byte array, directly writing the entire content in one operation.
Exception Handling− Make sure to handle IOException since both ByteArrayOutputStream and OutputStream operations can throw exceptions.