From the documentation of BufferedReader#readLine()
:
Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
I would say it pretty clear what this means: The end of the file/stream has been encountered - no more data is available.
Notable quirks with the GZIP format: Multiple files can just be appended to one-another to create a larger file with multiple gzipped objects. It seems that the GZIPInputStream
only reads the first of those.
That also explains why it is working for "small files". Those contain only one zipped object, so the whole file is read.
Note: If the GZIPInputStream
determines undestructively that one gzip-file is over, you could just open another GZIPInputStream
on the same InputStream
and read multiple objects.