public static ByteBufferInputStream getByteBufferInputStreamFromCrcInputStream(CrcInputStream crcStream, int dataSize)
      throws IOException {
    ByteBuffer buffer = readByteBufferFromCrcInputStream(crcStream, dataSize);
    return new ByteBufferInputStream(buffer);
  }
Create a {@link ByteBufferInputStream} from the {@link CrcInputStream} by sharing the underlying memory if the
crcStream is built upon a {@link ByteBufferDataInputStream}.
@param crcStream The crcStream to read {@link ByteBuffer} out.
@param dataSize The size of {@link ByteBuffer}.
@return The {@link ByteBufferInputStream}
@throws IOException Unexpected IO errors.
ambry-utils/src/main/java/com/github/ambry/utils/Utils.java