Class ByteArrayBuffer

java.lang.Object
org.apache.http.util.ByteArrayBuffer
All Implemented Interfaces:
Serializable

public final class ByteArrayBuffer extends Object implements Serializable
A resizable byte array.
Since:
4.0
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private byte[]
     
    private int
     
    private static final long
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    ByteArrayBuffer(int capacity)
    Creates an instance of ByteArrayBuffer with the given initial capacity.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    append(byte[] b, int off, int len)
    Appends len bytes to this buffer from the given source array starting at index off.
    void
    append(char[] b, int off, int len)
    Appends len chars to this buffer from the given source array starting at index off.
    void
    append(int b)
    Appends b byte to this buffer.
    void
    append(CharArrayBuffer b, int off, int len)
    Appends len chars to this buffer from the given source char array buffer starting at index off.
    byte[]
    Returns reference to the underlying byte array.
    int
    byteAt(int i)
    Returns the byte value in this buffer at the specified index.
    int
    Returns the current capacity.
    void
    Clears content of the buffer.
    void
    ensureCapacity(int required)
    Ensures that the capacity is at least equal to the specified minimum.
    private void
    expand(int newlen)
     
    int
    indexOf(byte b)
    Returns the index within this buffer of the first occurrence of the specified byte, starting the search at 0 and finishing at length().
    int
    indexOf(byte b, int from, int to)
    Returns the index within this buffer of the first occurrence of the specified byte, starting the search at the specified beginIndex and finishing at endIndex.
    boolean
    Returns true if this buffer is empty, that is, its length() is equal to 0.
    boolean
    Returns true if this buffer is full, that is, its length() is equal to its capacity().
    int
    Returns the length of the buffer (byte count).
    void
    setLength(int len)
    Sets the length of the buffer.
    byte[]
    Converts the content of this buffer to an array of bytes.

    Methods inherited from class java.lang.Object

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

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • buffer

      private byte[] buffer
    • len

      private int len
  • Constructor Details

    • ByteArrayBuffer

      public ByteArrayBuffer(int capacity)
      Creates an instance of ByteArrayBuffer with the given initial capacity.
      Parameters:
      capacity - the capacity
  • Method Details

    • expand

      private void expand(int newlen)
    • append

      public void append(byte[] b, int off, int len)
      Appends len bytes to this buffer from the given source array starting at index off. The capacity of the buffer is increased, if necessary, to accommodate all len bytes.
      Parameters:
      b - the bytes to be appended.
      off - the index of the first byte to append.
      len - the number of bytes to append.
      Throws:
      IndexOutOfBoundsException - if off if out of range, len is negative, or off + len is out of range.
    • append

      public void append(int b)
      Appends b byte to this buffer. The capacity of the buffer is increased, if necessary, to accommodate the additional byte.
      Parameters:
      b - the byte to be appended.
    • append

      public void append(char[] b, int off, int len)
      Appends len chars to this buffer from the given source array starting at index off. The capacity of the buffer is increased if necessary to accommodate all len chars.

      The chars are converted to bytes using simple cast.

      Parameters:
      b - the chars to be appended.
      off - the index of the first char to append.
      len - the number of bytes to append.
      Throws:
      IndexOutOfBoundsException - if off if out of range, len is negative, or off + len is out of range.
    • append

      public void append(CharArrayBuffer b, int off, int len)
      Appends len chars to this buffer from the given source char array buffer starting at index off. The capacity of the buffer is increased if necessary to accommodate all len chars.

      The chars are converted to bytes using simple cast.

      Parameters:
      b - the chars to be appended.
      off - the index of the first char to append.
      len - the number of bytes to append.
      Throws:
      IndexOutOfBoundsException - if off if out of range, len is negative, or off + len is out of range.
    • clear

      public void clear()
      Clears content of the buffer. The underlying byte array is not resized.
    • toByteArray

      public byte[] toByteArray()
      Converts the content of this buffer to an array of bytes.
      Returns:
      byte array
    • byteAt

      public int byteAt(int i)
      Returns the byte value in this buffer at the specified index. The index argument must be greater than or equal to 0, and less than the length of this buffer.
      Parameters:
      i - the index of the desired byte value.
      Returns:
      the byte value at the specified index.
      Throws:
      IndexOutOfBoundsException - if index is negative or greater than or equal to length().
    • capacity

      public int capacity()
      Returns the current capacity. The capacity is the amount of storage available for newly appended bytes, beyond which an allocation will occur.
      Returns:
      the current capacity
    • length

      public int length()
      Returns the length of the buffer (byte count).
      Returns:
      the length of the buffer
    • ensureCapacity

      public void ensureCapacity(int required)
      Ensures that the capacity is at least equal to the specified minimum. If the current capacity is less than the argument, then a new internal array is allocated with greater capacity. If the required argument is non-positive, this method takes no action.
      Parameters:
      required - the minimum required capacity.
      Since:
      4.1
    • buffer

      public byte[] buffer()
      Returns reference to the underlying byte array.
      Returns:
      the byte array.
    • setLength

      public void setLength(int len)
      Sets the length of the buffer. The new length value is expected to be less than the current capacity and greater than or equal to 0.
      Parameters:
      len - the new length
      Throws:
      IndexOutOfBoundsException - if the len argument is greater than the current capacity of the buffer or less than 0.
    • isEmpty

      public boolean isEmpty()
      Returns true if this buffer is empty, that is, its length() is equal to 0.
      Returns:
      true if this buffer is empty, false otherwise.
    • isFull

      public boolean isFull()
      Returns true if this buffer is full, that is, its length() is equal to its capacity().
      Returns:
      true if this buffer is full, false otherwise.
    • indexOf

      public int indexOf(byte b, int from, int to)
      Returns the index within this buffer of the first occurrence of the specified byte, starting the search at the specified beginIndex and finishing at endIndex. If no such byte occurs in this buffer within the specified bounds, -1 is returned.

      There is no restriction on the value of beginIndex and endIndex. If beginIndex is negative, it has the same effect as if it were zero. If endIndex is greater than length(), it has the same effect as if it were length(). If the beginIndex is greater than the endIndex, -1 is returned.

      Parameters:
      b - the byte to search for.
      from - the index to start the search from.
      to - the index to finish the search at.
      Returns:
      the index of the first occurrence of the byte in the buffer within the given bounds, or -1 if the byte does not occur.
      Since:
      4.1
    • indexOf

      public int indexOf(byte b)
      Returns the index within this buffer of the first occurrence of the specified byte, starting the search at 0 and finishing at length(). If no such byte occurs in this buffer within those bounds, -1 is returned.
      Parameters:
      b - the byte to search for.
      Returns:
      the index of the first occurrence of the byte in the buffer, or -1 if the byte does not occur.
      Since:
      4.1