Получите inputstream из TararchiveInputStreamJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Получите inputstream из TararchiveInputStream

Сообщение Anonymous »

Я получаю файлы от ftp.
файлы, которые я получаю, являются либо текстовыми файлами, либо tar.gz < /p>

для текстовых файлов я просто отправляю их на S3. Если я столкнусь с tar.gz, я хочу разжечь его и сохранить каждый файл с одним и тем же методом. < /P>

Код: Выделить всё

public void handleFile() {

try (InputStream fileStream = ftpFileService.getInputStream(file)) {
if (file.getName().lastIndexOf(".TGZ") > -1) {
TarArchiveInputStream tar = new TarArchiveInputStream(new GzipCompressorInputStream(fileStream));
TarArchiveEntry entry = null;
while ((entry = tar.getNextTarEntry()) != null) {
LOGGER.info("fileName to save {}", entry.getName());
saveStreamToS3(entry.getName(), new InputStream(tar));
}
tar.close();
} else {
LOGGER.info("fileName to save {}", fileName.getName());
saveStreamToS3(fileName.getName(), fileStream);
}
} catch (IOException e) {
LOGGER.error(e.getMessage());
}
}
Я попытался сохранить запись непосредственно с использованием New FileInputStream (entry.getFile ()) , но это возвращает NULL.

Я должен сделать SavetarStreamtos3 () или я могу сделать входной>

Подробнее здесь: https://stackoverflow.com/questions/534 ... nputstream
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»