Package java.io

Class OutputStream

java.lang.Object
java.io.OutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Direct Known Subclasses:
AbstractOutputStream, ByteArrayOutputStream, ChunkedOutputStream, ContentLengthOutputStream, DigestOutputStream, FileOutputStream, FilterOutputStream, IdentityOutputStream, MacOutputStream, MacOutputStream, ObjectOutputStream, PipedOutputStream, SSLSocketOutputStream, TeeOutputStream

public abstract class OutputStream
extends Object
implements Closeable, Flushable
A writable sink for bytes.

Most clients will use output streams that write data to the file system (FileOutputStream), the network (Socket.getOutputStream()/URLConnection.getOutputStream()), or to an in-memory byte array (ByteArrayOutputStream).

Use OutputStreamWriter to adapt a byte stream like this one into a character stream.

Most clients should wrap their output stream with BufferedOutputStream. Callers that do only bulk writes may omit buffering.

Subclassing OutputStream

Subclasses that decorate another output stream should consider subclassing FilterOutputStream, which delegates all calls to the target output stream.

All output stream subclasses should override both write(int) and write(byte[],int,int). The three argument overload is necessary for bulk access to the data. This is much more efficient than byte-by-byte access.

See Also:
InputStream
  • Constructor Summary

    Constructors
    Constructor Description
    OutputStream()
    Default constructor.
  • Method Summary

    Modifier and Type Method Description
    void close()
    Closes this stream.
    void flush()
    Flushes this stream.
    void write​(byte[] buffer)
    Equivalent to write(buffer, 0, buffer.length).
    void write​(byte[] buffer, int offset, int count)
    Writes count bytes from the byte array buffer starting at position offset to this stream.
    abstract void write​(int oneByte)
    Writes a single byte to this stream.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • OutputStream

      public OutputStream()
      Default constructor.
  • Method Details

    • close

      public void close() throws IOException
      Closes this stream. Implementations of this method should free any resources used by the stream. This implementation does nothing.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException - if an error occurs while closing this stream.
    • flush

      public void flush() throws IOException
      Flushes this stream. Implementations of this method should ensure that any buffered data is written out. This implementation does nothing.
      Specified by:
      flush in interface Flushable
      Throws:
      IOException - if an error occurs while flushing this stream.
    • write

      public void write​(byte[] buffer) throws IOException
      Equivalent to write(buffer, 0, buffer.length).
      Throws:
      IOException
    • write

      public void write​(byte[] buffer, int offset, int count) throws IOException
      Writes count bytes from the byte array buffer starting at position offset to this stream.
      Parameters:
      buffer - the buffer to be written.
      offset - the start position in buffer from where to get bytes.
      count - the number of bytes from buffer to write to this stream.
      Throws:
      IOException - if an error occurs while writing to this stream.
      IndexOutOfBoundsException - if offset < 0 or count < 0, or if offset + count is bigger than the length of buffer.
    • write

      public abstract void write​(int oneByte) throws IOException
      Writes a single byte to this stream. Only the least significant byte of the integer oneByte is written to the stream.
      Parameters:
      oneByte - the byte to be written.
      Throws:
      IOException - if an error occurs while writing to this stream.