Text extends BinaryComparable implements WritableComparable<BinaryComparable> { public void readWithKnownLength(DataInput in, int len) throws IOException { setCapacity(len, false); in.readFully(bytes, 0, len); length = len; } Text();  Text(String string);  Text(Text utf8);  Text(byte[] utf8); byte[] copyBytes(); @Override byte[] getBytes(); @Override int getLength(); int charAt(int position); int find(String what); int find(String what, int start); void set(String string); void set(byte[] utf8); void set(Text other); void set(byte[] utf8, int start, int len); void append(byte[] utf8, int start, int len); void clear(); @Override String toString(); @Override void readFields(DataInput in); void readFields(DataInput in, int maxLength); static void skip(DataInput in); void readWithKnownLength(DataInput in, int len); @Override void write(DataOutput out); void write(DataOutput out, int maxLength); @Override boolean equals(Object o); @Override int hashCode(); static String decode(byte[] utf8); static String decode(byte[] utf8, int start, int length); static String decode(byte[] utf8, int start, int length, boolean replace); static ByteBuffer encode(String string); static ByteBuffer encode(String string, boolean replace); static String readString(DataInput in); static String readString(DataInput in, int maxLength); static int writeString(DataOutput out, String s); static int writeString(DataOutput out, String s, int maxLength); static void validateUTF8(byte[] utf8); static void validateUTF8(byte[] utf8, int start, int len); static int bytesToCodePoint(ByteBuffer bytes); static int utf8Length(String string); static final public int DEFAULT_MAX_LEN; }
@Test public void testReadWithKnownLength() throws IOException { String line = "hello world"; byte[] inputBytes = line.getBytes(Charsets.UTF_8); DataInputBuffer in = new DataInputBuffer(); Text text = new Text(); in.reset(inputBytes, inputBytes.length); text.readWithKnownLength(in, 5); assertEquals("hello", text.toString()); in.reset(inputBytes, inputBytes.length); text.readWithKnownLength(in, 7); assertEquals("hello w", text.toString()); in.reset(inputBytes, inputBytes.length); text.readWithKnownLength(in, 2); assertEquals("he", text.toString()); }