Class ByteBufOutputStream

java.lang.Object
java.io.OutputStream
io.netty.buffer.ByteBufOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.lang.AutoCloseable

public class ByteBufOutputStream extends java.io.OutputStream implements java.io.DataOutput
An OutputStream which writes data to a ByteBuf.

A write operation against this stream will occur at the writerIndex of its underlying buffer and the writerIndex will increase during the write operation.

This stream implements DataOutput for your convenience. The endianness of the stream is not always big endian but depends on the endianness of the underlying buffer.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final ByteBuf
     
    private boolean
     
    private final boolean
     
    private final int
     
    private java.io.DataOutputStream
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new stream which writes data to the specified buffer.
    ByteBufOutputStream(ByteBuf buffer, boolean releaseOnClose)
    Creates a new stream which writes data to the specified buffer.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the buffer where this stream is writing data.
    void
     
    void
    write(byte[] b)
     
    void
    write(byte[] b, int off, int len)
     
    void
    write(int b)
     
    void
    writeBoolean(boolean v)
     
    void
    writeByte(int v)
     
    void
    writeBytes(java.lang.String s)
     
    void
    writeChar(int v)
     
    void
    writeChars(java.lang.String s)
     
    void
    writeDouble(double v)
     
    void
    writeFloat(float v)
     
    void
    writeInt(int v)
     
    void
    writeLong(long v)
     
    void
    writeShort(int v)
     
    void
    writeUTF(java.lang.String s)
     
    int
    Returns the number of written bytes by this stream so far.

    Methods inherited from class java.io.OutputStream

    flush

    Methods inherited from class java.lang.Object

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

    • buffer

      private final ByteBuf buffer
    • startIndex

      private final int startIndex
    • utf8out

      private java.io.DataOutputStream utf8out
    • closed

      private boolean closed
    • releaseOnClose

      private final boolean releaseOnClose
  • Constructor Details

    • ByteBufOutputStream

      public ByteBufOutputStream(ByteBuf buffer)
      Creates a new stream which writes data to the specified buffer.
    • ByteBufOutputStream

      public ByteBufOutputStream(ByteBuf buffer, boolean releaseOnClose)
      Creates a new stream which writes data to the specified buffer.
      Parameters:
      buffer - Writes data to the buffer for this OutputStream.
      releaseOnClose - true means that when close() is called then ReferenceCounted.release() will be called on buffer.
  • Method Details

    • writtenBytes

      public int writtenBytes()
      Returns the number of written bytes by this stream so far.
    • write

      public void write(byte[] b, int off, int len) throws java.io.IOException
      Specified by:
      write in interface java.io.DataOutput
      Overrides:
      write in class java.io.OutputStream
      Throws:
      java.io.IOException
    • write

      public void write(byte[] b) throws java.io.IOException
      Specified by:
      write in interface java.io.DataOutput
      Overrides:
      write in class java.io.OutputStream
      Throws:
      java.io.IOException
    • write

      public void write(int b) throws java.io.IOException
      Specified by:
      write in interface java.io.DataOutput
      Specified by:
      write in class java.io.OutputStream
      Throws:
      java.io.IOException
    • writeBoolean

      public void writeBoolean(boolean v) throws java.io.IOException
      Specified by:
      writeBoolean in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeByte

      public void writeByte(int v) throws java.io.IOException
      Specified by:
      writeByte in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeBytes

      public void writeBytes(java.lang.String s) throws java.io.IOException
      Specified by:
      writeBytes in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeChar

      public void writeChar(int v) throws java.io.IOException
      Specified by:
      writeChar in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeChars

      public void writeChars(java.lang.String s) throws java.io.IOException
      Specified by:
      writeChars in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeDouble

      public void writeDouble(double v) throws java.io.IOException
      Specified by:
      writeDouble in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeFloat

      public void writeFloat(float v) throws java.io.IOException
      Specified by:
      writeFloat in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeInt

      public void writeInt(int v) throws java.io.IOException
      Specified by:
      writeInt in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeLong

      public void writeLong(long v) throws java.io.IOException
      Specified by:
      writeLong in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeShort

      public void writeShort(int v) throws java.io.IOException
      Specified by:
      writeShort in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • writeUTF

      public void writeUTF(java.lang.String s) throws java.io.IOException
      Specified by:
      writeUTF in interface java.io.DataOutput
      Throws:
      java.io.IOException
    • buffer

      public ByteBuf buffer()
      Returns the buffer where this stream is writing data.
    • close

      public void close() throws java.io.IOException
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Overrides:
      close in class java.io.OutputStream
      Throws:
      java.io.IOException