code: public static String readString(DataInput in) throws IOException {
          int length = in.readInt();
          if (length == -1)
              return null;
          byte[] buffer = new byte[length];
          in.readFully(buffer); // could/should use readFully(buffer,0,length)?
          return new String(buffer, "UTF-8");
      }
docs: /*
  Read a String as a Network Int n, followed by n Bytes
  Alternative to 16 bit read/writeUTF.
  Encoding standard is... ?