Class ByteBufferOutputStream

java.lang.Object
java.io.OutputStream
com.tangosol.io.nio.ByteBufferOutputStream
All Implemented Interfaces:
com.oracle.coherence.common.io.OutputStreaming, OutputStreaming, Closeable, Flushable, AutoCloseable

public class ByteBufferOutputStream extends OutputStream implements OutputStreaming
An OutputStream implementation on top of a Java NIO ByteBuffer.
Since:
Coherence 2.2
Author:
cp 2002.09.06
  • Constructor Details

    • ByteBufferOutputStream

      public ByteBufferOutputStream(ByteBuffer buffer)
      Construct a ByteBufferOutputStream on a ByteBuffer object.
      Parameters:
      buffer - the ByteBuffer to write the data to
  • Method Details

    • getByteBuffer

      public ByteBuffer getByteBuffer()
      Obtain the ByteBuffer that this OutputStream is based on.
      Returns:
      the underlying ByteBuffer
    • write

      public void write(int b) throws IOException
      Writes the specified byte to this output stream.
      Specified by:
      write in interface com.oracle.coherence.common.io.OutputStreaming
      Specified by:
      write in class OutputStream
      Parameters:
      b - the byte
      Throws:
      IOException - if an I/O error occurs
    • write

      public void write(byte[] abSrc, int ofSrc, int cbSrc) throws IOException
      Writes len bytes from the specified byte array starting at offset off to this output stream.

      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.

      Specified by:
      write in interface com.oracle.coherence.common.io.OutputStreaming
      Overrides:
      write in class OutputStream
      Parameters:
      abSrc - the data
      ofSrc - the start offset in the data
      cbSrc - the number of bytes to write
      Throws:
      IOException - if an I/O error occurs
    • flush

      public void flush() throws IOException
      Flush any accumulated bytes.
      Specified by:
      flush in interface Flushable
      Specified by:
      flush in interface com.oracle.coherence.common.io.OutputStreaming
      Overrides:
      flush in class OutputStream
      Throws:
      IOException - if an I/O error occurs
    • close

      public void close() throws IOException
      Close the stream, flushing any accumulated bytes. The underlying buffer is not closed.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface com.oracle.coherence.common.io.OutputStreaming
      Overrides:
      close in class OutputStream
      Throws:
      IOException - if an I/O error occurs
    • includeMessage

      protected static String includeMessage(Throwable e)
      Provide a "suffix" containing the exception message (if any).
      Parameters:
      e - an exception (any Throwable object)
      Returns:
      either an empty string (no message) or a suitable suffix for an error message
    • potentialStreamClosedException

      protected NullPointerException potentialStreamClosedException(NullPointerException e) throws IOException
      Check if an NPE is caused by the stream being closed. Either throws an IO exception if the stream is closed or throws the original NPE.
      Parameters:
      e - an NPE
      Returns:
      this method never returns normally but is designed so that the developer can write "throw potentialStreamClosedException(e)" so that the compiler knows that an exception is thrown at that point in the code
      Throws:
      IOException - if the stream is closed