Вопреки другим ответам здесь, я хотел бы отметить, что записи ZIP сжимаются индивидуально, поэтому (теоретически) вам не нужно загружать ничего, кроме каталога и самой записи.Чтобы это работало, сервер должен поддерживать HTTP-заголовок Range
.
Стандартный API Java поддерживает только чтение ZIP-файлов из локальных файлов и входных потоков.Насколько я знаю, нет условий для чтения из удаленных файлов с произвольным доступом.
Поскольку вы используете TrueZip, я рекомендую реализовать de.schlichtherle.io.rof.ReadOnlyFile
с использованием Apache HTTP Client и создать de.schlichtherle.util.zip.ZipFile
с этим.
Это не даст никаких преимуществ для сжатых архивов TAR, так как весь архив сжимается вместе (кроме простого использования InputStream и его уничтожения, когда у вас есть запись).