Как использовать java.util.GZIPOutputStream или любой другой для хранения нескольких записей в виде одного файла, где каждая запись упакована по отдельности?

1

Как использовать java.util.GZIPOutputStream или любой другой для хранения нескольких записей в виде одного файла, где каждая запись застегивается по отдельности?

Это необходимо для поиска файла для отдельной записи и разархивирования только.

Я прочитал HBase, делая то же самое для hfile. Но я получаю проблемы с записью мудрый zip в одном файле.

Теги:

2 ответа

0

Используйте java.util.zip.ZipOutputStream. Прежде чем писать новую "запись", вызовите ZipOuputStream.putNextEntry чтобы указать, что вы хотите записать следующую запись, и передать в ZipEntry в качестве аргумента имя файла, который вы хотите установить для следующей записи.

  • 0
    Есть ли другие альтернативы .... у меня 10-20 нет. файлов и общий размер будет 25-30 МБ (без сжатия) (как ограничение размера почты). Я не проверял с этим, но получил некоторую информацию, поскольку это будет ~ 50% медленнее по сравнению с обычной записью. Мне нужна скорость, а также хорошее сжатие. Мне еще предстоит проверить производительность чтения и записи с помощью java.util.zip.ZipOutputStream. Спасибо за ваше ценное предложение.
  • 0
    Перед вашим предложением я думаю применить как HBase со своим hfile (storeFile). где формат файла: (DATA1 DATA2 DATA3 ... | Метаданные | Трейлер). где DATA1, DATA2 ... моя другая часть почты, а Meta будет держать смещение каждой начальной позиции DATA. а один трейлер - это длинное значение, которое будет содержать смещение всей стартовой позиции Meta. У меня есть программа, которая может легко писать / читать содержимое одной почты. Но приходится применять сжатие к каждой информации. кроме меты и трейлера.
Показать ещё 2 комментария
0

Используйте ZipOutputStream с ZipEntry для каждой записи.

Вы должны иметь возможность извлекать определенные записи (ZipEntry), когда захотите, без необходимости разархивировать весь файл.

  • 0
    Спасибо Манвендра ... Есть ли другая альтернатива, чтобы получить быстрое чтение / запись, а также хорошее сжатие. Я должен использовать это для хранения одной почты в виде одного сжатого файла. где каждая почта в среднем 10-20 нет. различных кусков / содержимого и общего размера будет ~ 30 МБ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню