public Writable readWithType(DataInput dataInput) throws IOException {
        Writable w = newWritable(dataInput.readShort());
        w.readFields(dataInput);
        return w;
    }
public Writable readWithType ( DataInput dataInput ) throws IOException { Writable w = newWritable ( dataInput . readShort ( ) ) ; w . readFields ( dataInput ) ; return w ; }
Read a Writable From the DataInput, where the Writable was previously written using {@link #writeWithType(Writable, DataOutput)}

@param dataInput DataInput to read the Writable from
@return Writable from the DataInput
@throws IOException In an error occurs during reading