OutputStream
is an abstract class in java.io
that represents an output stream of bytes — i.e., it lets you write raw binary data to some destination.
🔽 Common Subclasses of OutputStream
Subclass | Description |
---|---|
FileOutputStream | Writes bytes to a file. |
BufferedOutputStream | Adds buffering to another output stream to reduce the number of I/O operations. |
DataOutputStream | Writes Java primitives (like int , double , etc.) in a machine-independent way. |
ByteArrayOutputStream | Writes to an in-memory byte array (can later be converted to a byte[] ). |
ObjectOutputStream | Writes serialized Java objects to a stream. |
PipedOutputStream | Connects to a PipedInputStream to allow thread-to-thread communication. |
FilterOutputStream | Superclass for all output streams that “filter” data, e.g., DataOutputStream and BufferedOutputStream . |
✅ Quick Examples
1. FileOutputStream
OutputStream out = new FileOutputStream("output.txt");
out.write("Hello".getBytes());
out.close();
2. BufferedOutputStream
OutputStream out = new BufferedOutputStream(new FileOutputStream("output.txt"));
out.write("Buffered Hello".getBytes());
out.close();
3. ByteArrayOutputStream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(65); // 'A'
byte[] data = baos.toByteArray();
System.out.println(Arrays.toString(data)); // [65]
4. DataOutputStream
DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.bin"));
dos.writeInt(42);
dos.writeDouble(3.14);
dos.close();
5. ObjectOutputStream
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.ser"));
oos.writeObject(new MyClass());
oos.close();
🧵 Summary
Stream Type | Use Case |
---|---|
FileOutputStream | Writing to files |
BufferedOutputStream | Efficient writing with buffer |
DataOutputStream | Writing primitives |
ByteArrayOutputStream | Writing to memory |
ObjectOutputStream | Writing objects |
PipedOutputStream | Inter-thread streaming |
FilterOutputStream | Base for stream decorators |