Class ByteArray

java.lang.Object
com.android.dx.util.ByteArray

public final class ByteArray extends Object
Wrapper for a byte[], which provides read-only access and can "reveal" a partial slice of the underlying array. Note: Multibyte accessors all use big-endian order.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    Helper interface that allows one to get the cursor (of a stream).
    static class 
    Helper class for makeDataInputStream().
    class 
    Helper class for makeInputStream(), which implements the stream functionality.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ByteArray(byte[] bytes)
    Constructs an instance from an entire byte[].
    ByteArray(byte[] bytes, int start, int end)
    Constructs an instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    getByte(int off)
    Gets the signed byte value at a particular offset.
    void
    getBytes(byte[] out, int offset)
    Copies the contents of this instance into the given raw byte[] at the given offset.
    int
    getInt(int off)
    Gets the signed int value at a particular offset.
    long
    getLong(int off)
    Gets the signed long value at a particular offset.
    int
    getShort(int off)
    Gets the signed short value at a particular offset.
    int
    getUnsignedByte(int off)
    Gets the unsigned byte value at a particular offset.
    int
    Gets the unsigned short value at a particular offset.
    Gets a DataInputStream that reads from this instance, with the cursor starting at the beginning of this instance's data.
    Gets a InputStream that reads from this instance, with the cursor starting at the beginning of this instance's data.
    int
    Gets the size of the array, in bytes.
    slice(int start, int end)
    Returns a slice (that is, a sub-array) of this instance.
    int
    underlyingOffset(int offset)
    Returns the offset into the given array represented by the given offset into this instance.

    Methods inherited from class java.lang.Object

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

    • ByteArray

      public ByteArray(byte[] bytes, int start, int end)
      Constructs an instance.
      Parameters:
      bytes - non-null; the underlying array
      start - >= 0; start index of the slice (inclusive)
      end - >= start, <= bytes.length; end index of the slice (exclusive)
    • ByteArray

      public ByteArray(byte[] bytes)
      Constructs an instance from an entire byte[].
      Parameters:
      bytes - non-null; the underlying array
  • Method Details

    • size

      public int size()
      Gets the size of the array, in bytes.
      Returns:
      >= 0; the size
    • slice

      public ByteArray slice(int start, int end)
      Returns a slice (that is, a sub-array) of this instance.
      Parameters:
      start - >= 0; start index of the slice (inclusive)
      end - >= start, <= size(); end index of the slice (exclusive)
      Returns:
      non-null; the slice
    • underlyingOffset

      public int underlyingOffset(int offset)
      Returns the offset into the given array represented by the given offset into this instance.
      Parameters:
      offset - offset into this instance
      Returns:
      corresponding offset into bytes
      Throws:
      IllegalArgumentException - thrown if bytes is not the underlying array of this instance
    • getByte

      public int getByte(int off)
      Gets the signed byte value at a particular offset.
      Parameters:
      off - >= 0, < size(); offset to fetch
      Returns:
      signed byte at that offset
    • getShort

      public int getShort(int off)
      Gets the signed short value at a particular offset.
      Parameters:
      off - >= 0, < (size() - 1); offset to fetch
      Returns:
      signed short at that offset
    • getInt

      public int getInt(int off)
      Gets the signed int value at a particular offset.
      Parameters:
      off - >= 0, < (size() - 3); offset to fetch
      Returns:
      signed int at that offset
    • getLong

      public long getLong(int off)
      Gets the signed long value at a particular offset.
      Parameters:
      off - >= 0, < (size() - 7); offset to fetch
      Returns:
      signed int at that offset
    • getUnsignedByte

      public int getUnsignedByte(int off)
      Gets the unsigned byte value at a particular offset.
      Parameters:
      off - >= 0, < size(); offset to fetch
      Returns:
      unsigned byte at that offset
    • getUnsignedShort

      public int getUnsignedShort(int off)
      Gets the unsigned short value at a particular offset.
      Parameters:
      off - >= 0, < (size() - 1); offset to fetch
      Returns:
      unsigned short at that offset
    • getBytes

      public void getBytes(byte[] out, int offset)
      Copies the contents of this instance into the given raw byte[] at the given offset. The given array must be large enough.
      Parameters:
      out - non-null; array to hold the output
      offset - non-null; index into out for the first byte of output
    • makeDataInputStream

      public ByteArray.MyDataInputStream makeDataInputStream()
      Gets a DataInputStream that reads from this instance, with the cursor starting at the beginning of this instance's data. Note: The returned instance may be cast to ByteArray.GetCursor if needed.
      Returns:
      non-null; an appropriately-constructed DataInputStream instance
    • makeInputStream

      public ByteArray.MyInputStream makeInputStream()
      Gets a InputStream that reads from this instance, with the cursor starting at the beginning of this instance's data. Note: The returned instance may be cast to ByteArray.GetCursor if needed.
      Returns:
      non-null; an appropriately-constructed InputStream instancex