Class WritableUtils

java.lang.Object
org.apache.hadoop.io.WritableUtils

@Public @Stable public final class WritableUtils extends Object
  • Constructor Details

    • WritableUtils

      public WritableUtils()
  • Method Details

    • readCompressedByteArray

      public static byte[] readCompressedByteArray(DataInput in) throws IOException
      Throws:
      IOException
    • skipCompressedByteArray

      public static void skipCompressedByteArray(DataInput in) throws IOException
      Throws:
      IOException
    • writeCompressedByteArray

      public static int writeCompressedByteArray(DataOutput out, byte[] bytes) throws IOException
      Throws:
      IOException
    • readCompressedString

      public static String readCompressedString(DataInput in) throws IOException
      Throws:
      IOException
    • writeCompressedString

      public static int writeCompressedString(DataOutput out, String s) throws IOException
      Throws:
      IOException
    • writeString

      public static void writeString(DataOutput out, String s) throws IOException
      Throws:
      IOException
    • readString

      public static String readString(DataInput in) throws IOException
      Throws:
      IOException
    • writeStringArray

      public static void writeStringArray(DataOutput out, String[] s) throws IOException
      Throws:
      IOException
    • writeCompressedStringArray

      public static void writeCompressedStringArray(DataOutput out, String[] s) throws IOException
      Throws:
      IOException
    • readStringArray

      public static String[] readStringArray(DataInput in) throws IOException
      Throws:
      IOException
    • readCompressedStringArray

      public static String[] readCompressedStringArray(DataInput in) throws IOException
      Throws:
      IOException
    • displayByteArray

      public static void displayByteArray(byte[] record)
    • clone

      public static <T extends Writable> T clone(T orig, Configuration conf)
      Make a copy of a writable object using serialization to a buffer.
      Type Parameters:
      T - Generics Type T.
      Parameters:
      orig - The object to copy
      conf - input Configuration.
      Returns:
      The copied object
    • cloneInto

      @Deprecated public static void cloneInto(Writable dst, Writable src) throws IOException
      Deprecated.
      use ReflectionUtils.cloneInto instead.
      Make a copy of the writable object using serialization to a buffer.
      Parameters:
      dst - the object to copy from
      src - the object to copy into, which is destroyed
      Throws:
      IOException - raised on errors performing I/O.
    • writeVInt

      public static void writeVInt(DataOutput stream, int i) throws IOException
      Serializes an integer to a binary stream with zero-compressed encoding. For -112 <= i <= 127, only one byte is used with the actual value. For other values of i, the first byte value indicates whether the integer is positive or negative, and the number of bytes that follow. If the first byte value v is between -113 and -116, the following integer is positive, with number of bytes that follow are -(v+112). If the first byte value v is between -121 and -124, the following integer is negative, with number of bytes that follow are -(v+120). Bytes are stored in the high-non-zero-byte-first order.
      Parameters:
      stream - Binary output stream
      i - Integer to be serialized
      Throws:
      IOException - raised on errors performing I/O.
    • writeVLong

      public static void writeVLong(DataOutput stream, long i) throws IOException
      Serializes a long to a binary stream with zero-compressed encoding. For -112 <= i <= 127, only one byte is used with the actual value. For other values of i, the first byte value indicates whether the long is positive or negative, and the number of bytes that follow. If the first byte value v is between -113 and -120, the following long is positive, with number of bytes that follow are -(v+112). If the first byte value v is between -121 and -128, the following long is negative, with number of bytes that follow are -(v+120). Bytes are stored in the high-non-zero-byte-first order.
      Parameters:
      stream - Binary output stream
      i - Long to be serialized
      Throws:
      IOException - raised on errors performing I/O.
    • readVLong

      public static long readVLong(DataInput stream) throws IOException
      Reads a zero-compressed encoded long from input stream and returns it.
      Parameters:
      stream - Binary input stream
      Returns:
      deserialized long from stream.
      Throws:
      IOException - raised on errors performing I/O.
    • readVInt

      public static int readVInt(DataInput stream) throws IOException
      Reads a zero-compressed encoded integer from input stream and returns it.
      Parameters:
      stream - Binary input stream
      Returns:
      deserialized integer from stream.
      Throws:
      IOException - raised on errors performing I/O.
    • readVIntInRange

      public static int readVIntInRange(DataInput stream, int lower, int upper) throws IOException
      Reads an integer from the input stream and returns it. This function validates that the integer is between [lower, upper], inclusive.
      Parameters:
      stream - Binary input stream
      lower - input lower.
      upper - input upper.
      Returns:
      deserialized integer from stream.
      Throws:
      IOException - raised on errors performing I/O.
    • isNegativeVInt

      public static boolean isNegativeVInt(byte value)
      Given the first byte of a vint/vlong, determine the sign
      Parameters:
      value - the first byte
      Returns:
      is the value negative
    • decodeVIntSize

      public static int decodeVIntSize(byte value)
      Parse the first byte of a vint/vlong to determine the number of bytes
      Parameters:
      value - the first byte of the vint/vlong
      Returns:
      the total number of bytes (1 to 9)
    • getVIntSize

      public static int getVIntSize(long i)
      Get the encoded length if an integer is stored in a variable-length format.
      Parameters:
      i - input i.
      Returns:
      the encoded length
    • readEnum

      public static <T extends Enum<T>> T readEnum(DataInput in, Class<T> enumType) throws IOException
      Read an Enum value from DataInput, Enums are read and written using String values.
      Type Parameters:
      T - Enum type
      Parameters:
      in - DataInput to read from
      enumType - Class type of Enum
      Returns:
      Enum represented by String read from DataInput
      Throws:
      IOException - raised on errors performing I/O.
    • writeEnum

      public static void writeEnum(DataOutput out, Enum<?> enumVal) throws IOException
      writes String value of enum to DataOutput.
      Parameters:
      out - Dataoutput stream
      enumVal - enum value
      Throws:
      IOException - raised on errors performing I/O.
    • skipFully

      public static void skipFully(DataInput in, int len) throws IOException
      Skip len number of bytes in input streamin
      Parameters:
      in - input stream
      len - number of bytes to skip
      Throws:
      IOException - when skipped less number of bytes
    • toByteArray

      public static byte[] toByteArray(Writable... writables)
      Convert writables to a byte array.
      Parameters:
      writables - input writables.
      Returns:
      ByteArray.
    • readStringSafely

      public static String readStringSafely(DataInput in, int maxLength) throws IOException, IllegalArgumentException
      Read a string, but check it for sanity. The format consists of a vint followed by the given number of bytes.
      Parameters:
      in - the stream to read from
      maxLength - the largest acceptable length of the encoded string
      Returns:
      the bytes as a string
      Throws:
      IOException - if reading from the DataInput fails
      IllegalArgumentException - if the encoded byte size for string is negative or larger than maxSize. Only the vint is read.