
- 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 - OutputStream write(byte[] b, int off, int len) method
Description
The Java OutputStream write(byte[] b, int off, int len) method writes len bytes from the specified byte array starting at offset off to this output stream. The general contract for write(b, off, len) is that some of the bytes in the array b are written to the output stream in order; element b[off] is the first byte written and b[off+len-1] is the last byte written by this operation.
The write method of OutputStream calls the write method of one argument on each of the bytes to be written out. Subclasses are encouraged to override this method and provide a more efficient implementation.
If b is null, a NullPointerException is thrown. If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.
Declaration
Following is the declaration for java.io.OutputStream.write(byte[] b, int off, int len) method.
public void write(byte[] b, int off, int len)
Parameters
b − The data.
off − The start offset in the data.
len − The number of bytes to write.
Return Value
This method does not return a value.
Exception
IOException − If an I/O error occurs. In particular, an IOException is thrown if the output stream is closed.
Example - Usage of OutputStream write(byte[] b, int off, int len) method
The following example shows the usage of OutputStream write(byte[] b, int off, int len) method.
OutputStreamDemo.java
package com.tutorialspoint; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; public class OutputStreamDemo { public static void main(String[] args) { byte[] b = {'h', 'e', 'l', 'l', 'o'}; try { // create a new output stream OutputStream os = new FileOutputStream("test.txt"); // craete a new input stream InputStream is = new FileInputStream("test.txt"); // write something os.write(b, 0, 3); // read what we wrote for (int i = 0; i < 3; i++) { System.out.print("" + (char) is.read()); } } catch (Exception ex) { ex.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result −
hel
Example - Writing a portion of a byte array to a file
The following example shows the usage of OutputStream write(byte[] b, int off, int len) method.
OutputStreamDemo.java
package com.tutorialspoint; import java.io.FileOutputStream; import java.io.IOException; public class OutputStreamDemo { public static void main(String[] args) { try { FileOutputStream fos = new FileOutputStream("partial_output1.txt"); String message = "Hello, OutputStream!"; byte[] data = message.getBytes(); // Write only "OutputStream" (starts at index 7, length 12) fos.write(data, 7, 12); // Writes: "OutputStream" fos.close(); System.out.println("Partial data written to file."); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Partial data written to file.
Explanation
write(byte[] b, int off, int len) writes a specific range of bytes.
-
In this example −
off = 7 (start at index 7 of the byte array)
len = 12 (write 12 bytes)
Only the substring "OutputStream" gets written to partial_output1.txt.
Example - Writing a part of an array to memory using ByteArrayOutputStream
The following example shows the usage of OutputStream write(byte[] b, int off, int len) method.
OutputStreamDemo.java
package com.tutorialspoint; import java.io.ByteArrayOutputStream; import java.io.IOException; public class OutputStreamDemo { public static void main(String[] args) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] letters = {65, 66, 67, 68, 69, 70, 71}; // A to G // Write only 'C', 'D', 'E' (indices 2 to 4) baos.write(letters, 2, 3); byte[] result = baos.toByteArray(); for (byte b : result) { System.out.print((char) b + " "); } baos.close(); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
C D E
Explanation
Only 3 bytes starting from index 2 are written: 67 (C), 68 (D), 69 (E).
This is useful when you want to extract or stream only a portion of data.
Output printed: C D E