com.pixelmed.utils

## Class ByteArray

- java.lang.Object
- - com.pixelmed.utils.ByteArray

    public class ByteArray
    extends java.lang.Object

Various static methods helpful for manipulating arrays of bytes and extracting values from them.

### Method Summary

Methods
`static int` `bigEndianToUnsignedInt(byte[] b)` Extract an unsigned big endian integer from an entire byte array.
`static int` `bigEndianToUnsignedInt(byte[] b, int offset, int length)` Extract an unsigned big endian integer from a byte array.
`static byte[]` `concatenate(byte[] src1, byte[] src2)` Concatenate the entire contents of two byte arrays into a new byte array.
`static byte[]` `concatenate(byte[] src1, int offset1, int length1, byte[] src2, int offset2, int length2)` Concatenate portions of two byte arrays into a new byte array.
`static byte[]` `extractBytes(byte[] src, int offset, int length)` Extract a portion of a byte array into a new byte array.
`static byte[]` `intToBigEndianArray(int value, int length)` Extract an integer into a big endian byte array.
`static byte[]` `intToLittleEndianArray(int value, int length)` Extract an integer into a little endian byte array.
`static void` `main(java.lang.String[] arg)` Testing.
`static byte[]` `readFully(java.lang.String filename)`
`static void` `swapEndianness(byte[] src, int byteCount, int wordLength)` Swap the byte order (endianness) of fixed length words within a byte array.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### readFully

    public static final byte[] readFully(java.lang.String filename)
                                  throws java.io.IOException

Throws:
  `java.io.IOException`

#### bigEndianToUnsignedInt

    public static final int bigEndianToUnsignedInt(byte[] b,
                             int offset,
                             int length)

Extract an unsigned big endian integer from a byte array.

Parameters:
  `b` - the byte array containing the big endian encoded integer
  `offset` - the offset of the start of the integer in the byte array
  `length` - the number of bytes that the integer occupies in the byte array
Returns:
  the unsigned integer value

#### bigEndianToUnsignedInt

    public static final int bigEndianToUnsignedInt(byte[] b)

Extract an unsigned big endian integer from an entire byte array.

Parameters:
  `b` - the byte array which is the big endian encoded integer
Returns:
  the unsigned integer value

#### intToBigEndianArray

    public static final byte[] intToBigEndianArray(int value,
                             int length)

Extract an integer into a big endian byte array.

Parameters:
  `value` - the integer value
  `length` - the length of the byte array
Returns:
  the byte array which is the big endian encoded integer

#### intToLittleEndianArray

    public static final byte[] intToLittleEndianArray(int value,
                                int length)

Extract an integer into a little endian byte array.

Parameters:
  `value` - the integer value
  `length` - the length of the byte array
Returns:
  the byte array which is the little endian encoded integer

#### extractBytes

    public static final byte[] extractBytes(byte[] src,
                      int offset,
                      int length)

Extract a portion of a byte array into a new byte array.

Parameters:
  `src` - the source byte array
  `offset` - the offset of the bytes to be extracted
  `length` - the number of bytes to be extracted
Returns:
  a new byte array containing the extracted bytes

#### concatenate

    public static final byte[] concatenate(byte[] src1,
                     int offset1,
                     int length1,
                     byte[] src2,
                     int offset2,
                     int length2)

Concatenate portions of two byte arrays into a new byte array.

Parameters:
  `src1` - the first byte array
  `offset1` - the offset of the bytes to be extracted from the first byte array
  `length1` - the number of bytes to be extracted from the first byte array
  `src2` - the second byte array
  `offset2` - the offset of the bytes to be extracted from the second byte array
  `length2` - the number of bytes to be extracted from the second byte array
Returns:
  a new byte array containing the bytes extracted from the first array followed by the bytes extracted from the second array

#### concatenate

    public static final byte[] concatenate(byte[] src1,
                     byte[] src2)

Concatenate the entire contents of two byte arrays into a new byte array.

Parameters:
  `src1` - the first byte array
  `src2` - the second byte array
Returns:
  a new byte array containing the bytes extracted from the first array followed by the bytes extracted from the second array

#### swapEndianness

    public static final void swapEndianness(byte[] src,
                      int byteCount,
                      int wordLength)

Swap the byte order (endianness) of fixed length words within a byte array.

Parameters:
  `src` - the byte array (swapped in place)
  `byteCount` - the number of bytes in the array to swap
  `wordLength` - the length in bytes of each word

#### main

    public static void main(java.lang.String[] arg)

Testing.

Parameters:
  `arg` - ignored