Я получаю из XML-файлов webservice, сжатых в формате gzip. Исходный размер xmls составляет около 80 Мб, а сжатая версия - около 10 МБ. Эти xml-файлы хранятся в нашем кеше.Замените содержимое в файле gzip без его распаковки
Корень xml содержит атрибут, представляющий уникальный 8-значный идентификатор. Поэтому, когда мы обслуживаем ответ из кеша, нам нужно изменить этот идентификатор с другим, полученным от другого веб-сервиса, прежде чем вернуть xml конечному пользователю.
Таким образом, этот процесс должен быть:
- Распаковка XML-кэша.
- Замените кешированный идентификатор на один полученный из веб-службы.
- Снова сжать файл и вернуть его клиенту.
Это программное обеспечение для Java. Мне было интересно, есть ли возможность выполнить эту замену без распаковки всего документа и сжатия его снова. Любой вид частичного чтения и записи ... Я не знаю.
Я искал библиотеку java, которая могла бы это сделать, но я ничего не нахожу (может быть, потому, что это невозможно).
Любая идея? Благодарю.
Можете ли вы показать код, в котором вы декомпрессируете, заменяете, а затем снова сжимаете? Может быть место для улучшения –
Пока не закодировано, но идея такова: 1. создать байт [] с несжатым документом (используя gzipinputstream). 2. Замените 8-значный байт на байт (избегая любой временной копии). 3. сжать этот байт [] с помощью gzipoutputstream. – JBalaguero