Package io.vertx.core.buffer

## Interface Buffer

- All Superinterfaces:
    `ClusterSerializable`, `Shareable`

      public interface Buffer
      extends ClusterSerializable, Shareable

  Most data is shuffled around inside Vert.x using buffers.

  A buffer is a sequence of zero or more bytes that can read from or written to and which expands automatically as necessary to accommodate any bytes written to it. You can perhaps think of a buffer as smart byte array.

  Please consult the documentation for more information on buffers.

  Author:
    Tim Fox

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Buffer` | `appendBuffer​(Buffer buff)` | Appends the specified `Buffer` to the end of this Buffer.
    `Buffer` | `appendBuffer​(Buffer buff, int offset, int len)` | Appends the specified `Buffer` starting at the `offset` using `len` to the end of this Buffer.
    `Buffer` | `appendByte​(byte b)` | Appends the specified `byte` to the end of the Buffer.
    `Buffer` | `appendBytes​(byte[] bytes)` | Appends the specified `byte[]` to the end of the Buffer.
    `Buffer` | `appendBytes​(byte[] bytes, int offset, int len)` | Appends the specified number of bytes from `byte[]` to the end of the Buffer, starting at the given offset.
    `Buffer` | `appendDouble​(double d)` | Appends the specified `double` to the end of the Buffer.
    `Buffer` | `appendDoubleLE​(double d)` | Appends the specified unsigned `double` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.
    `Buffer` | `appendFloat​(float f)` | Appends the specified `float` to the end of the Buffer.
    `Buffer` | `appendFloatLE​(float f)` | Appends the specified unsigned `float` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.
    `Buffer` | `appendInt​(int i)` | Appends the specified `int` to the end of the Buffer.
    `Buffer` | `appendIntLE​(int i)` | Appends the specified `int` to the end of the Buffer in the Little Endian Byte Order.
    `Buffer` | `appendLong​(long l)` | Appends the specified `long` to the end of the Buffer.
    `Buffer` | `appendLongLE​(long l)` | Appends the specified `long` to the end of the Buffer in the Little Endian Byte Order.
    `Buffer` | `appendMedium​(int i)` | Appends the specified 24bit `int` to the end of the Buffer.
    `Buffer` | `appendMediumLE​(int i)` | Appends the specified 24bit `int` to the end of the Buffer in the Little Endian Byte Order.
    `Buffer` | `appendShort​(short s)` | Appends the specified `short` to the end of the Buffer.The buffer will expand as necessary to accommodate any bytes written.
    `Buffer` | `appendShortLE​(short s)` | Appends the specified `short` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.
    `Buffer` | `appendString​(String str)` | Appends the specified `String str` to the end of the Buffer with UTF-8 encoding.
    `Buffer` | `appendString​(String str, String enc)` | Appends the specified `String` to the end of the Buffer with the encoding as specified by `enc`.
    `Buffer` | `appendUnsignedByte​(short b)` | Appends the specified unsigned `byte` to the end of the Buffer.
    `Buffer` | `appendUnsignedInt​(long i)` | Appends the specified unsigned `int` to the end of the Buffer.
    `Buffer` | `appendUnsignedIntLE​(long i)` | Appends the specified unsigned `int` to the end of the Buffer in the Little Endian Byte Order.
    `Buffer` | `appendUnsignedShort​(int s)` | Appends the specified unsigned `short` to the end of the Buffer.The buffer will expand as necessary to accommodate any bytes written.
    `Buffer` | `appendUnsignedShortLE​(int s)` | Appends the specified unsigned `short` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.
    `static Buffer` | `buffer()` | Create a new, empty buffer.
    `static Buffer` | `buffer​(byte[] bytes)` | Create a new buffer from a byte[].
    `static Buffer` | `buffer​(int initialSizeHint)` | Create a new buffer given the initial size hint.
    `static Buffer` | `buffer​(String string)` | Create a new buffer from a string.
    `static Buffer` | `buffer​(String string, String enc)` | Create a new buffer from a string and using the specified encoding.
    `Buffer` | `copy()` | Returns a copy of the entire Buffer.
    `static Buffer` | `fromJson​(String value)` | Create a buffer from the base 64 URL encoded `value`
    `Buffer` | `getBuffer​(int start, int end)` | Returns a copy of a sub-sequence the Buffer as a `Buffer` starting at position `start` and ending at position `end - 1`
    `byte` | `getByte​(int pos)` | Returns the `byte` at position `pos` in the Buffer.
    `byte[]` | `getBytes()` | Returns a copy of the entire Buffer as a `byte[]`
    `Buffer` | `getBytes​(byte[] dst)` | Transfers the content of the Buffer into a `byte[]`.
    `Buffer` | `getBytes​(byte[] dst, int dstIndex)` | Transfers the content of the Buffer into a `byte[]` at the specific destination.
    `byte[]` | `getBytes​(int start, int end)` | Returns a copy of a sub-sequence the Buffer as a `byte[]` starting at position `start` and ending at position `end - 1`
    `Buffer` | `getBytes​(int start, int end, byte[] dst)` | Transfers the content of the Buffer starting at position `start` and ending at position `end - 1` into a `byte[]`.
    `Buffer` | `getBytes​(int start, int end, byte[] dst, int dstIndex)` | Transfers the content of the Buffer starting at position `start` and ending at position `end - 1` into a `byte[]` at the specific destination.
    `double` | `getDouble​(int pos)` | Returns the `double` at position `pos` in the Buffer.
    `double` | `getDoubleLE​(int pos)` | Gets a double at the specified absolute `index` in this buffer in Little Endian Byte Order.
    `float` | `getFloat​(int pos)` | Returns the `float` at position `pos` in the Buffer.
    `float` | `getFloatLE​(int pos)` | Gets a float at the specified absolute `index` in this buffer in Little Endian Byte Order.
    `int` | `getInt​(int pos)` | Returns the `int` at position `pos` in the Buffer.
    `int` | `getIntLE​(int pos)` | Gets a 32-bit integer at the specified absolute `index` in this buffer with Little Endian Byte Order.
    `long` | `getLong​(int pos)` | Returns the `long` at position `pos` in the Buffer.
    `long` | `getLongLE​(int pos)` | Gets a 64-bit long integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
    `int` | `getMedium​(int pos)` | Gets a 24-bit medium integer at the specified absolute `index` in this buffer.
    `int` | `getMediumLE​(int pos)` | Gets a 24-bit medium integer at the specified absolute `index` in this buffer in the Little Endian Byte Order.
    `short` | `getShort​(int pos)` | Returns the `short` at position `pos` in the Buffer.
    `short` | `getShortLE​(int pos)` | Gets a 16-bit short integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
    `String` | `getString​(int start, int end)` | Returns a copy of a sub-sequence the Buffer as a `String` starting at position `start` and ending at position `end - 1` interpreted as a String in UTF-8 encoding
    `String` | `getString​(int start, int end, String enc)` | Returns a copy of a sub-sequence the Buffer as a `String` starting at position `start` and ending at position `end - 1` interpreted as a String in the specified encoding
    `short` | `getUnsignedByte​(int pos)` | Returns the unsigned `byte` at position `pos` in the Buffer, as a `short`.
    `long` | `getUnsignedInt​(int pos)` | Returns the unsigned `int` at position `pos` in the Buffer, as a `long`.
    `long` | `getUnsignedIntLE​(int pos)` | Returns the unsigned `int` at position `pos` in the Buffer, as a `long` in Little Endian Byte Order.
    `int` | `getUnsignedMedium​(int pos)` | Gets an unsigned 24-bit medium integer at the specified absolute `index` in this buffer.
    `int` | `getUnsignedMediumLE​(int pos)` | Gets an unsigned 24-bit medium integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
    `int` | `getUnsignedShort​(int pos)` | Returns the unsigned `short` at position `pos` in the Buffer, as an `int`.
    `int` | `getUnsignedShortLE​(int pos)` | Gets an unsigned 16-bit short integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
    `int` | `length()` | Returns the length of the buffer, measured in bytes.
    `Buffer` | `setBuffer​(int pos, Buffer b)` | Sets the bytes at position `pos` in the Buffer to the bytes represented by the `Buffer b`.
    `Buffer` | `setBuffer​(int pos, Buffer b, int offset, int len)` | Sets the bytes at position `pos` in the Buffer to the bytes represented by the `Buffer b` on the given `offset` and `len`.
    `Buffer` | `setByte​(int pos, byte b)` | Sets the `byte` at position `pos` in the Buffer to the value `b`.
    `Buffer` | `setBytes​(int pos, byte[] b)` | Sets the bytes at position `pos` in the Buffer to the bytes represented by the `byte[] b`.
    `Buffer` | `setBytes​(int pos, byte[] b, int offset, int len)` | Sets the given number of bytes at position `pos` in the Buffer to the bytes represented by the `byte[] b`.
    `Buffer` | `setBytes​(int pos, ByteBuffer b)` | Sets the bytes at position `pos` in the Buffer to the bytes represented by the `ByteBuffer b`.
    `Buffer` | `setDouble​(int pos, double d)` | Sets the `double` at position `pos` in the Buffer to the value `d`.
    `Buffer` | `setDoubleLE​(int pos, double d)` | Sets the `double` at position `pos` in the Buffer to the value `d` in the Little Endian Byte Order.
    `Buffer` | `setFloat​(int pos, float f)` | Sets the `float` at position `pos` in the Buffer to the value `f`.
    `Buffer` | `setFloatLE​(int pos, float f)` | Sets the `float` at position `pos` in the Buffer to the value `f` in the Little Endian Byte Order.
    `Buffer` | `setInt​(int pos, int i)` | Sets the `int` at position `pos` in the Buffer to the value `i`.
    `Buffer` | `setIntLE​(int pos, int i)` | Sets the `int` at position `pos` in the Buffer to the value `i` in the Little Endian Byte Order.
    `Buffer` | `setLong​(int pos, long l)` | Sets the `long` at position `pos` in the Buffer to the value `l`.
    `Buffer` | `setLongLE​(int pos, long l)` | Sets the `long` at position `pos` in the Buffer to the value `l` in the Little Endian Byte Order.
    `Buffer` | `setMedium​(int pos, int i)` | Sets the 24bit `int` at position `pos` in the Buffer to the value `i`.
    `Buffer` | `setMediumLE​(int pos, int i)` | Sets the 24bit `int` at position `pos` in the Buffer to the value `i`. in the Little Endian Byte Order
    `Buffer` | `setShort​(int pos, short s)` | Sets the `short` at position `pos` in the Buffer to the value `s`.
    `Buffer` | `setShortLE​(int pos, short s)` | Sets the `short` at position `pos` in the Buffer to the value `s` in the Little Endian Byte Order.
    `Buffer` | `setString​(int pos, String str)` | Sets the bytes at position `pos` in the Buffer to the value of `str` encoded in UTF-8.
    `Buffer` | `setString​(int pos, String str, String enc)` | Sets the bytes at position `pos` in the Buffer to the value of `str` encoded in encoding `enc`.
    `Buffer` | `setUnsignedByte​(int pos, short b)` | Sets the unsigned `byte` at position `pos` in the Buffer to the value `b`.
    `Buffer` | `setUnsignedInt​(int pos, long i)` | Sets the unsigned `int` at position `pos` in the Buffer to the value `i`.
    `Buffer` | `setUnsignedIntLE​(int pos, long i)` | Sets the unsigned `int` at position `pos` in the Buffer to the value `i` in the Little Endian Byte Order.
    `Buffer` | `setUnsignedShort​(int pos, int s)` | Sets the unsigned `short` at position `pos` in the Buffer to the value `s`.
    `Buffer` | `setUnsignedShortLE​(int pos, int s)` | Sets the unsigned `short` at position `pos` in the Buffer to the value `s` in the Little Endian Byte Order.
    `Buffer` | `slice()` | Returns a slice of this buffer.
    `Buffer` | `slice​(int start, int end)` | Returns a slice of this buffer.
    `default String` | `toJson()` | Encode the buffer bytes to their base 64 URL encoded representation.
    `JsonArray` | `toJsonArray()` | Returns a `JsonArray` representation of this buffer's content.
    `JsonObject` | `toJsonObject()` | Returns a `JsonObject` representation of this buffer's content.
    `default Object` | `toJsonValue()` | Returns a Json value representation of this buffer's content.
    `String` | `toString()` | Returns a `String` representation of the Buffer with the `UTF-8` encoding
    `String` | `toString​(String enc)` | Returns a `String` representation of the Buffer with the encoding specified by `enc`
    `String` | `toString​(Charset enc)` | Returns a `String` representation of the Buffer with the encoding specified by `enc`

    - ### Methods inherited from interface io.vertx.core.shareddata.ClusterSerializable

      `readFromBuffer, writeToBuffer`

- - ### Method Detail

    - #### fromJson

          static Buffer fromJson​(String value)

      Create a buffer from the base 64 URL encoded `value`
      Parameters:
        `value` - the base64 encoded value
      Returns:
        the buffer

    - #### buffer

          static Buffer buffer()

      Create a new, empty buffer.
      Returns:
        the buffer

    - #### buffer

          static Buffer buffer​(int initialSizeHint)

      Create a new buffer given the initial size hint.

      If you know the buffer will require a certain size, providing the hint can prevent unnecessary re-allocations as the buffer is written to and resized.

      Parameters:
        `initialSizeHint` - the hint, in bytes
      Returns:
        the buffer

    - #### buffer

          static Buffer buffer​(String string)

      Create a new buffer from a string. The string will be UTF-8 encoded into the buffer.
      Parameters:
        `string` - the string
      Returns:
        the buffer

    - #### buffer

          static Buffer buffer​(String string,
                               String enc)

      Create a new buffer from a string and using the specified encoding. The string will be encoded into the buffer using the specified encoding.
      Parameters:
        `string` - the string
      Returns:
        the buffer

    - #### buffer

          static Buffer buffer​(byte[] bytes)

      Create a new buffer from a byte[]. The byte[] will be copied to form the buffer.
      Parameters:
        `bytes` - the byte array
      Returns:
        the buffer

    - #### toString

          String toString()

      Returns a `String` representation of the Buffer with the `UTF-8` encoding
      Overrides:
        `toString` in class `Object`

    - #### toString

          String toString​(String enc)

      Returns a `String` representation of the Buffer with the encoding specified by `enc`

    - #### toString

          String toString​(Charset enc)

      Returns a `String` representation of the Buffer with the encoding specified by `enc`

    - #### toJsonObject

          JsonObject toJsonObject()

      Returns a `JsonObject` representation of this buffer's content.

    - #### toJsonArray

          JsonArray toJsonArray()

      Returns a `JsonArray` representation of this buffer's content.

    - #### toJsonValue

          default Object toJsonValue()

      Returns a Json value representation of this buffer's content.
      Returns:
        a Json value which can be a `JsonArray`, `JsonObject`, `String`, ... if the buffer contains an array, object, string, ...etc

    - #### toJson

          default String toJson()

      Encode the buffer bytes to their base 64 URL encoded representation.

    - #### getByte

          byte getByte​(int pos)

      Returns the `byte` at position `pos` in the Buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 1` is greater than the length of the Buffer.

    - #### getUnsignedByte

          short getUnsignedByte​(int pos)

      Returns the unsigned `byte` at position `pos` in the Buffer, as a `short`.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 1` is greater than the length of the Buffer.

    - #### getInt

          int getInt​(int pos)

      Returns the `int` at position `pos` in the Buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 4` is greater than the length of the Buffer.

    - #### getIntLE

          int getIntLE​(int pos)

      Gets a 32-bit integer at the specified absolute `index` in this buffer with Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 4` is greater than `this.capacity`

    - #### getUnsignedInt

          long getUnsignedInt​(int pos)

      Returns the unsigned `int` at position `pos` in the Buffer, as a `long`.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 4` is greater than the length of the Buffer.

    - #### getUnsignedIntLE

          long getUnsignedIntLE​(int pos)

      Returns the unsigned `int` at position `pos` in the Buffer, as a `long` in Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 4` is greater than the length of the Buffer.

    - #### getLong

          long getLong​(int pos)

      Returns the `long` at position `pos` in the Buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 8` is greater than the length of the Buffer.

    - #### getLongLE

          long getLongLE​(int pos)

      Gets a 64-bit long integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 8` is greater than the length of the Buffer.

    - #### getDouble

          double getDouble​(int pos)

      Returns the `double` at position `pos` in the Buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 8` is greater than the length of the Buffer.

    - #### getDoubleLE

          double getDoubleLE​(int pos)

      Gets a double at the specified absolute `index` in this buffer in Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 8` is greater than the length of the Buffer.

    - #### getFloat

          float getFloat​(int pos)

      Returns the `float` at position `pos` in the Buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 4` is greater than the length of the Buffer.

    - #### getFloatLE

          float getFloatLE​(int pos)

      Gets a float at the specified absolute `index` in this buffer in Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 4` is greater than the length of the Buffer.

    - #### getShort

          short getShort​(int pos)

      Returns the `short` at position `pos` in the Buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 2` is greater than the length of the Buffer.

    - #### getShortLE

          short getShortLE​(int pos)

      Gets a 16-bit short integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 2` is greater than the length of the Buffer.

    - #### getUnsignedShort

          int getUnsignedShort​(int pos)

      Returns the unsigned `short` at position `pos` in the Buffer, as an `int`.
      Throws:
        `IndexOutOfBoundsException` - if the specified `pos` is less than `0` or `pos + 2` is greater than the length of the Buffer.

    - #### getUnsignedShortLE

          int getUnsignedShortLE​(int pos)

      Gets an unsigned 16-bit short integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 2` is greater than the length of the Buffer.

    - #### getMedium

          int getMedium​(int pos)

      Gets a 24-bit medium integer at the specified absolute `index` in this buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 3` is greater than the length of the Buffer.

    - #### getMediumLE

          int getMediumLE​(int pos)

      Gets a 24-bit medium integer at the specified absolute `index` in this buffer in the Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 3` is greater than the length of the Buffer.

    - #### getUnsignedMedium

          int getUnsignedMedium​(int pos)

      Gets an unsigned 24-bit medium integer at the specified absolute `index` in this buffer.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 3` is greater than the length of the Buffer.

    - #### getUnsignedMediumLE

          int getUnsignedMediumLE​(int pos)

      Gets an unsigned 24-bit medium integer at the specified absolute `index` in this buffer in Little Endian Byte Order.
      Throws:
        `IndexOutOfBoundsException` - if the specified `index` is less than `0` or `index + 3` is greater than the length of the Buffer.

    - #### getBytes

          byte[] getBytes()

      Returns a copy of the entire Buffer as a `byte[]`

    - #### getBytes

          byte[] getBytes​(int start,
                          int end)

      Returns a copy of a sub-sequence the Buffer as a `byte[]` starting at position `start` and ending at position `end - 1`

    - #### getBytes

          Buffer getBytes​(byte[] dst)

      Transfers the content of the Buffer into a `byte[]`.
      Parameters:
        `dst` - the destination byte array
      Throws:
        `IndexOutOfBoundsException` - if the content of the Buffer cannot fit into the destination byte array

    - #### getBytes

          Buffer getBytes​(byte[] dst,
                          int dstIndex)

      Transfers the content of the Buffer into a `byte[]` at the specific destination.
      Parameters:
        `dst` - the destination byte array
      Throws:
        `IndexOutOfBoundsException` - if the content of the Buffer cannot fit into the destination byte array

    - #### getBytes

          Buffer getBytes​(int start,
                          int end,
                          byte[] dst)

      Transfers the content of the Buffer starting at position `start` and ending at position `end - 1` into a `byte[]`.
      Parameters:
        `dst` - the destination byte array
      Throws:
        `IndexOutOfBoundsException` - if the content of the Buffer cannot fit into the destination byte array

    - #### getBytes

          Buffer getBytes​(int start,
                          int end,
                          byte[] dst,
                          int dstIndex)

      Transfers the content of the Buffer starting at position `start` and ending at position `end - 1` into a `byte[]` at the specific destination.
      Parameters:
        `dst` - the destination byte array
      Throws:
        `IndexOutOfBoundsException` - if the content of the Buffer cannot fit into the destination byte array

    - #### getBuffer

          Buffer getBuffer​(int start,
                           int end)

      Returns a copy of a sub-sequence the Buffer as a `Buffer` starting at position `start` and ending at position `end - 1`

    - #### getString

          String getString​(int start,
                           int end,
                           String enc)

      Returns a copy of a sub-sequence the Buffer as a `String` starting at position `start` and ending at position `end - 1` interpreted as a String in the specified encoding

    - #### getString

          String getString​(int start,
                           int end)

      Returns a copy of a sub-sequence the Buffer as a `String` starting at position `start` and ending at position `end - 1` interpreted as a String in UTF-8 encoding

    - #### appendBuffer

          Buffer appendBuffer​(Buffer buff)

      Appends the specified `Buffer` to the end of this Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendBuffer

          Buffer appendBuffer​(Buffer buff,
                              int offset,
                              int len)

      Appends the specified `Buffer` starting at the `offset` using `len` to the end of this Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendBytes

          Buffer appendBytes​(byte[] bytes)

      Appends the specified `byte[]` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendBytes

          Buffer appendBytes​(byte[] bytes,
                             int offset,
                             int len)

      Appends the specified number of bytes from `byte[]` to the end of the Buffer, starting at the given offset. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendByte

          Buffer appendByte​(byte b)

      Appends the specified `byte` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendUnsignedByte

          Buffer appendUnsignedByte​(short b)

      Appends the specified unsigned `byte` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendInt

          Buffer appendInt​(int i)

      Appends the specified `int` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendIntLE

          Buffer appendIntLE​(int i)

      Appends the specified `int` to the end of the Buffer in the Little Endian Byte Order. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendUnsignedInt

          Buffer appendUnsignedInt​(long i)

      Appends the specified unsigned `int` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendUnsignedIntLE

          Buffer appendUnsignedIntLE​(long i)

      Appends the specified unsigned `int` to the end of the Buffer in the Little Endian Byte Order. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendMedium

          Buffer appendMedium​(int i)

      Appends the specified 24bit `int` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendMediumLE

          Buffer appendMediumLE​(int i)

      Appends the specified 24bit `int` to the end of the Buffer in the Little Endian Byte Order. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendLong

          Buffer appendLong​(long l)

      Appends the specified `long` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendLongLE

          Buffer appendLongLE​(long l)

      Appends the specified `long` to the end of the Buffer in the Little Endian Byte Order. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendShort

          Buffer appendShort​(short s)

      Appends the specified `short` to the end of the Buffer.The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendShortLE

          Buffer appendShortLE​(short s)

      Appends the specified `short` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendUnsignedShort

          Buffer appendUnsignedShort​(int s)

      Appends the specified unsigned `short` to the end of the Buffer.The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendUnsignedShortLE

          Buffer appendUnsignedShortLE​(int s)

      Appends the specified unsigned `short` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendFloat

          Buffer appendFloat​(float f)

      Appends the specified `float` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendFloatLE

          Buffer appendFloatLE​(float f)

      Appends the specified unsigned `float` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendDouble

          Buffer appendDouble​(double d)

      Appends the specified `double` to the end of the Buffer. The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendDoubleLE

          Buffer appendDoubleLE​(double d)

      Appends the specified unsigned `double` to the end of the Buffer in the Little Endian Byte Order.The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendString

          Buffer appendString​(String str,
                              String enc)

      Appends the specified `String` to the end of the Buffer with the encoding as specified by `enc`.

      The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together.

    - #### appendString

          Buffer appendString​(String str)

      Appends the specified `String str` to the end of the Buffer with UTF-8 encoding.

      The buffer will expand as necessary to accommodate any bytes written.

      Returns a reference to `this` so multiple operations can be appended together

    - #### setByte

          Buffer setByte​(int pos,
                         byte b)

      Sets the `byte` at position `pos` in the Buffer to the value `b`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setUnsignedByte

          Buffer setUnsignedByte​(int pos,
                                 short b)

      Sets the unsigned `byte` at position `pos` in the Buffer to the value `b`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setInt

          Buffer setInt​(int pos,
                        int i)

      Sets the `int` at position `pos` in the Buffer to the value `i`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setIntLE

          Buffer setIntLE​(int pos,
                          int i)

      Sets the `int` at position `pos` in the Buffer to the value `i` in the Little Endian Byte Order.

      The buffer will expand as necessary to accommodate any value written.

    - #### setUnsignedInt

          Buffer setUnsignedInt​(int pos,
                                long i)

      Sets the unsigned `int` at position `pos` in the Buffer to the value `i`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setUnsignedIntLE

          Buffer setUnsignedIntLE​(int pos,
                                  long i)

      Sets the unsigned `int` at position `pos` in the Buffer to the value `i` in the Little Endian Byte Order.

      The buffer will expand as necessary to accommodate any value written.

    - #### setMedium

          Buffer setMedium​(int pos,
                           int i)

      Sets the 24bit `int` at position `pos` in the Buffer to the value `i`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setMediumLE

          Buffer setMediumLE​(int pos,
                             int i)

      Sets the 24bit `int` at position `pos` in the Buffer to the value `i`. in the Little Endian Byte Order

      The buffer will expand as necessary to accommodate any value written.

    - #### setLong

          Buffer setLong​(int pos,
                         long l)

      Sets the `long` at position `pos` in the Buffer to the value `l`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setLongLE

          Buffer setLongLE​(int pos,
                           long l)

      Sets the `long` at position `pos` in the Buffer to the value `l` in the Little Endian Byte Order.

      The buffer will expand as necessary to accommodate any value written.

    - #### setDouble

          Buffer setDouble​(int pos,
                           double d)

      Sets the `double` at position `pos` in the Buffer to the value `d`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setDoubleLE

          Buffer setDoubleLE​(int pos,
                             double d)

      Sets the `double` at position `pos` in the Buffer to the value `d` in the Little Endian Byte Order.

      The buffer will expand as necessary to accommodate any value written.

    - #### setFloat

          Buffer setFloat​(int pos,
                          float f)

      Sets the `float` at position `pos` in the Buffer to the value `f`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setFloatLE

          Buffer setFloatLE​(int pos,
                            float f)

      Sets the `float` at position `pos` in the Buffer to the value `f` in the Little Endian Byte Order.

      The buffer will expand as necessary to accommodate any value written.

    - #### setShort

          Buffer setShort​(int pos,
                          short s)

      Sets the `short` at position `pos` in the Buffer to the value `s`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setShortLE

          Buffer setShortLE​(int pos,
                            short s)

      Sets the `short` at position `pos` in the Buffer to the value `s` in the Little Endian Byte Order.

      The buffer will expand as necessary to accommodate any value written.

    - #### setUnsignedShort

          Buffer setUnsignedShort​(int pos,
                                  int s)

      Sets the unsigned `short` at position `pos` in the Buffer to the value `s`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setUnsignedShortLE

          Buffer setUnsignedShortLE​(int pos,
                                    int s)

      Sets the unsigned `short` at position `pos` in the Buffer to the value `s` in the Little Endian Byte Order.

      The buffer will expand as necessary to accommodate any value written.

    - #### setBuffer

          Buffer setBuffer​(int pos,
                           Buffer b)

      Sets the bytes at position `pos` in the Buffer to the bytes represented by the `Buffer b`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setBuffer

          Buffer setBuffer​(int pos,
                           Buffer b,
                           int offset,
                           int len)

      Sets the bytes at position `pos` in the Buffer to the bytes represented by the `Buffer b` on the given `offset` and `len`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setBytes

          Buffer setBytes​(int pos,
                          ByteBuffer b)

      Sets the bytes at position `pos` in the Buffer to the bytes represented by the `ByteBuffer b`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setBytes

          Buffer setBytes​(int pos,
                          byte[] b)

      Sets the bytes at position `pos` in the Buffer to the bytes represented by the `byte[] b`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setBytes

          Buffer setBytes​(int pos,
                          byte[] b,
                          int offset,
                          int len)

      Sets the given number of bytes at position `pos` in the Buffer to the bytes represented by the `byte[] b`.

      The buffer will expand as necessary to accommodate any value written.

    - #### setString

          Buffer setString​(int pos,
                           String str)

      Sets the bytes at position `pos` in the Buffer to the value of `str` encoded in UTF-8.

      The buffer will expand as necessary to accommodate any value written.

    - #### setString

          Buffer setString​(int pos,
                           String str,
                           String enc)

      Sets the bytes at position `pos` in the Buffer to the value of `str` encoded in encoding `enc`.

      The buffer will expand as necessary to accommodate any value written.

    - #### length

          int length()

      Returns the length of the buffer, measured in bytes. All positions are indexed from zero.

    - #### copy

          Buffer copy()

      Returns a copy of the entire Buffer.
      Specified by:
        `copy` in interface `Shareable`

    - #### slice

          Buffer slice()

      Returns a slice of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks.

    - #### slice

          Buffer slice​(int start,
                       int end)

      Returns a slice of this buffer. Modifying the content of the returned buffer or this buffer affects each other's content while they maintain separate indexes and marks.