Class ByteUtils


  • public final class ByteUtils
    extends Object
    Utility methods for reading and writing bytes.
    Since:
    1.14
    • Field Detail

      • EMPTY_BYTE_ARRAY

        public static final byte[] EMPTY_BYTE_ARRAY
        Empty array.
        Since:
        1.21
    • Method Detail

      • fromLittleEndian

        public static long fromLittleEndian​(byte[] bytes)
        Reads the given byte array as a little endian long.
        Parameters:
        bytes - the byte array to convert
        Returns:
        the number read
      • fromLittleEndian

        public static long fromLittleEndian​(byte[] bytes,
                                            int off,
                                            int length)
        Reads the given byte array as a little endian long.
        Parameters:
        bytes - the byte array to convert
        off - the offset into the array that starts the value
        length - the number of bytes representing the value
        Returns:
        the number read
        Throws:
        IllegalArgumentException - if len is bigger than eight
      • fromLittleEndian

        public static long fromLittleEndian​(InputStream in,
                                            int length)
                                     throws IOException
        Reads the given number of bytes from the given stream as a little endian long.
        Parameters:
        in - the stream to read from
        length - the number of bytes representing the value
        Returns:
        the number read
        Throws:
        IllegalArgumentException - if len is bigger than eight
        IOException - if reading fails or the stream doesn't contain the given number of bytes anymore
      • fromLittleEndian

        public static long fromLittleEndian​(ByteUtils.ByteSupplier supplier,
                                            int length)
                                     throws IOException
        Reads the given number of bytes from the given supplier as a little endian long.

        Typically used by our InputStreams that need to count the bytes read as well.

        Parameters:
        supplier - the supplier for bytes
        length - the number of bytes representing the value
        Returns:
        the number read
        Throws:
        IllegalArgumentException - if len is bigger than eight
        IOException - if the supplier fails or doesn't supply the given number of bytes anymore
      • fromLittleEndian

        public static long fromLittleEndian​(DataInput in,
                                            int length)
                                     throws IOException
        Reads the given number of bytes from the given input as little endian long.
        Parameters:
        in - the input to read from
        length - the number of bytes representing the value
        Returns:
        the number read
        Throws:
        IllegalArgumentException - if len is bigger than eight
        IOException - if reading fails or the stream doesn't contain the given number of bytes anymore
      • toLittleEndian

        public static void toLittleEndian​(byte[] b,
                                          long value,
                                          int off,
                                          int length)
        Inserts the given value into the array as a little endian sequence of the given length starting at the given offset.
        Parameters:
        b - the array to write into
        value - the value to insert
        off - the offset into the array that receives the first byte
        length - the number of bytes to use to represent the value
      • toLittleEndian

        public static void toLittleEndian​(OutputStream out,
                                          long value,
                                          int length)
                                   throws IOException
        Writes the given value to the given stream as a little endian array of the given length.
        Parameters:
        out - the stream to write to
        value - the value to write
        length - the number of bytes to use to represent the value
        Throws:
        IOException - if writing fails
      • toLittleEndian

        public static void toLittleEndian​(ByteUtils.ByteConsumer consumer,
                                          long value,
                                          int length)
                                   throws IOException
        Provides the given value to the given consumer as a little endian sequence of the given length.
        Parameters:
        consumer - the consumer to provide the bytes to
        value - the value to provide
        length - the number of bytes to use to represent the value
        Throws:
        IOException - if writing fails
      • toLittleEndian

        public static void toLittleEndian​(DataOutput out,
                                          long value,
                                          int length)
                                   throws IOException
        Writes the given value to the given stream as a little endian array of the given length.
        Parameters:
        out - the output to write to
        value - the value to write
        length - the number of bytes to use to represent the value
        Throws:
        IOException - if writing fails