Do we really want this to return a String rather than a byte array? What happens if it was not text? Will we just get garbage (and then user subsequently calls `getBytes()`), or will it cause worse problems?