Это может быть достигнуто с расположением таблицы по умолчанию для statusStrip путем простого помещения другой маркировки между текущей маркировкой и progressBar и установило свойство Spring на истинный.
Структура GZIP, как вы уже поняли, не поддерживает произвольный доступ.
Вы можете сделать так, как вы описываете, а затем, если вы столкнетесь с ошибкой в декомпрессоре, сделать вывод, что найденная вами подпись была действительно сжатыми данными.
Если вы закончите распаковку, то легко проверить действительность только что распакованного потока с помощью CRC32.
Если файлы не такие большие, вы можете просто распаковать все записи последовательно и сохранить смещения подписей для создания каталога. При распаковке сбрасывайте байты в битовое ведро. На этом этапе у вас будет создан каталог, и вы сможете поддерживать произвольный доступ на основе имени файла, даты или других метаданных.
Это будет достаточно быстро для файлов размером менее 100 КБ. Предположительно, если бы у вас было 10 файлов размером около 100 КБ каждый, на современном процессоре это, вероятно, было бы сделано за 2 секунды. Вот что я имею в виду под словом «довольно быстро». Но только вы знаете требования к производительности вашего приложения.
У вас есть класс GZipInputStream? В таком случае вы на полпути.
Формат файла BGZF , совместимый с GZIP, был разработан биологами.
(...) Преимущество BGZF перед обычным gzip заключается в том, что BGZF позволяет выполнять поиск без необходимости сканировать весь файл до {{1} } искомую позицию.
В http://picard.svn.sourceforge.net/viewvc/picard/trunk/src/java/net/sf/samtools/util/ посмотрите на BlockCompressedOutputStream и BlockCompressedInputStream.java.