gzis.available() = 1;
не означает, что есть проблема, это просто означает, что вы можете прочитать только 1 байт информации из потока, прежде чем сможете продолжить.вы не можете ожидать, что весь несжатый файл будет доступен в одной команде.
Чтобы прочитать весь файл, вам понадобится цикл, который продолжает считывать InputStream, пока у вас не будут все данные,Например ...
int bytesRead = 0;
int bytesAvailable = gzis.available();
while (bytesAvailable > 0){
gzis.read(bbuffer,bytesRead,bytesAvailable);
bytesRead += bytesAvailable;
bytesAvailable = gzis.available();
}
Конечно, если вы не уверены в конечном размере несжатого файла, вам нужно будет добавить дополнительный код, чтобы разрешить изменение размера bbuffer
.если вам нужно больше места.