getEstimatedSizeBytes

An estimate of the total size (in bytes) of the data that would be read from this source.
This estimate is in terms of external storage size, before any decompression or other
processing done by the reader.

If there is no way to estimate the size of the source
implementations MAY return 0L.