private boolean readChar() throws IOException {
            optLastDecodeChar = optDecodeChar;
            optDecodeChar = charReader.read();
            if (optDecodeChar.isEmpty()) {
                // Reached the end of the stream
                totalCharCount = Count.exactly(currCharOffset + 1); // zero based offset to count
                return false;
            } else {
                return true;
            }
        }
@return True if a decoded char was read.
stroom-data/stroom-data-store-impl/src/main/java/stroom/data/store/impl/DataFetcher.java