public int read() throws IOException {
        long next = pointer + 1;
        long pos = readUntil(next);
        if (pos >= next) {
            cache.seek(pointer++);
            return cache.read();
        } else {
            return -1;
        }
    }
Reads the next byte of data from the input stream. The value byte is
returned as an <code>int</code> in the range <code>0</code> to
<code>255</code>. If no byte is available because the end of the stream
has been reached, the value <code>-1</code> is returned. This method
blocks until input data is available, the end of the stream is detected,
or an exception is thrown.

@return     the next byte of data, or <code>-1</code> if the end of the
            stream is reached.
@exception  IOException  if an I/O error occurs.
plugins/svg-plugin/batik-codec-fix/src/main/java/org/apache/batik/ext/awt/image/codec/util/FileCacheSeekableStream.java