2011-01-29 4 views
10

У меня есть довольно большой файл BZ2, в котором есть несколько текстовых файлов. Возможно ли, чтобы я использовал Java для разблокировки определенных файлов внутри файла BZ2 и разархивирования/анализа данных на лету? Предположим, что файл 300mb BZ2 содержит 1 ГБ текста. В идеале, я хотел бы, чтобы моя программа Java говорила, что прочитала 1 мб файла BZ2, распакуйте ее на лету, действуйте на ней и продолжайте читать файл BZ2 для получения дополнительных данных. Это возможно?Java - Чтение файла BZ2 и распаковка/разбор на лету

Благодаря

+1

'Это possible' - да :) – bestsss

ответ

2

Муравей проект содержит bzip2 библиотеку. У кого есть класс org.apache.tools.bzip2.CBZip2InputStream. Вы можете использовать этот класс для распаковки файла bzip2 на лету - он просто расширяет стандарт Java InputStream.

+0

Эта библиотека Ждут» t узнайте мой формат bzip2. Пришлось использовать commons-compress. – suhprano

19

Библиотека общего доступа от apache довольно хороша. Вот их страница образцы: http://commons.apache.org/proper/commons-compress/examples.html

Вот последний Maven фрагмент кода:

<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-compress</artifactId> 
    <version>1.10</version> 
</dependency> 

А вот мой метод Util:

+1

Примечание: принятыми форматами являются: gzip, bzip2, xz, lzma, Pack200, DEFLATE и Z. Как видно из ссылки, правильный присваивается автоматически – Danielson

Смежные вопросы