BlockBufferedInputStream createBufferedInputStream(final boolean recycle) {
        // Avoid allocating a new buffer
        if (recycle && currentRawStreamBuffer != null) {
            currentRawStreamBuffer.recycle(getRawStream());
            return currentRawStreamBuffer;
        }
        // Use a defined buffer size?
        if (rawBufferSize != null) {
            return new BlockBufferedInputStream(getRawStream(), rawBufferSize);
        }
        return new BlockBufferedInputStream(getRawStream());
    }
@param recycle can we reuse the last buffer?
@return create a buffer for accessing the RA file
stroom-data/stroom-data-store-impl-fs/src/main/java/stroom/data/store/impl/fs/BlockGZIPInput.java