Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > растаривание разгзипование файлов


Автор: apostol12 26.4.2007, 16:53
суть задачи в слудующем:
есть несколько текстовых файлов... каждый из них заGZIPован. 
Потом все это дело собрано вместе и заTARено.

в конечном итоге нужно получить InputStream из текстового файла.
у меня получилось  только сперва достать Gzip из TARa и сохранив его временно на диске, взять GZIPIputStream.
А вот не используя файловую систему никак не получается.....

Может кто уже сталкивался с такой задачей, подскажите пожалуйста как это можно сделать?

Автор: LSD 26.4.2007, 22:56
А как ты достал Gzip из TAR-a?

Автор: apostol12 27.4.2007, 09:12
TarInputStream и TarEntry использовал..... пакет iceTar.jar
Далее GZIP сохранял на диск и уже только после этого его разGZIPовывал.
Код

TarInputStream tarStream = new TarInputStream(new FileInputStream(file));
TarEntry entry = tarStream.getNextEntry();
FileOutputStream fout = new FileOutputStream(new File("temp"));
tarStream.copyEntryContents(fout);
fout.close();
InputStream is = new GZIPInputStream(new FileInputStream(temp));


Но очень уж нужно сделать это не используя файловую систему.

Автор: fixxer 27.4.2007, 10:42
Промелькнула тупая мысль. А вот так не прокатит?
Код

new GZIPInputStream(new TarInputStream(new FileInputStream(file)));


Добавлено через 10 минут и 51 секунду
Можно также посмотреть в сторону PipedInputStream, PipedOutputStream

Автор: apostol12 27.4.2007, 11:11
нет так не прокатывает к сожалению.....это был первый вариант, который я попробовал.
ошибку выдает "Not in GZIP format".

Вот попробовал BiteArrayInputStream и BiteArrayOutputStream..... тоже не получилось

похоже расTARить и разGZIPовать одним разом - это неразрешимая задача smile 

Автор: LSD 29.4.2007, 17:15
А что за класс такой TarInputStream? В составе JDK такого нет.

Автор: Maksym 30.4.2007, 13:24
LSD
http://jakarta.apache.org/commons/sandbox/compress/apidocs/org/apache/commons/compress/tar/TarInputStream.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)