DataInput is an interface which declares methods for reading in typed data
from a Stream. Typically, this stream has been written by a class which
implements DataOutput. Types that can be read include byte, 16-bit short,
32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and UTF
Strings.