Descompacte um arquivo 7zip com vários arquivos e diretórios em Java [fechado
Pergunta
Quero descomprimir um arquivo 7ZIP/LZMA com vários arquivos e diretórios em Java. Tentei usar o 7ZIP SDK oficial, mas falhei, pois minhas habilidades de programação não são tão avançadas para esse assunto. No entanto, fico com algumas bibliotecas que facilitam o suporte em Java, falando de LzmaOutputStream/LzmainputStream - no entanto, não sei como usar esses "fluxos" para descomprimir um arquivo de vários arquivos. Estou preso.
Solução
No exemplo, substitua compressed
com novo arquivo ("path_to_file"). O código de exemplo produzirá um fluxo de saída, suponho que o LzmaOutputStream ou a biblioteca possuam métodos apropriados para converter o fluxo em binário ou string.
Por padrão, o LZMA é apenas um algoritmo de compactação, não um arquiver de arquivo como alcatrão ou zip. (Nota: o programa 7-ZIP é um arquiver de arquivo, mas a biblioteca a que você vinculou não suporta travessia de arquivo e descompactação.
Eu sugeriria o uso de um algoritmo de compressão bem-sucedido como Zip ou GZ. Se você precisar usar o LZMA, poderá usar o TAR para criar um arquivo de arquivo e compactá -lo com LZMA. Ou use ZIP com compressão zero.
Aqui está um Biblioteca Tar Java.