public final String readUTF() throws IOException {
        if (input instanceof RandomAccessFile) {
            return ((RandomAccessFile) input).readUTF();
        } else if (input instanceof DataInputStream) {
            return ((DataInputStream) input).readUTF();
        } else {
            throw new UnsupportedOperationException("Unknown Hollow Blob Input type");
        }
    }
@Test
    public void testReadUTF() throws IOException {
        HollowBlobInput inStream = HollowBlobInput.modeBasedSelector(MemoryMode.ON_HEAP, mockBlob);
        inStream.readLong();    // skip 8 bytes
        assertEquals("t", inStream.readUTF()); // first UTF

        HollowBlobInput inBuffer = HollowBlobInput.modeBasedSelector(MemoryMode.SHARED_MEMORY_LAZY, mockBlob);
        inBuffer.seek(8);
        assertEquals("t", inBuffer.readUTF()); // first UTF
    }