use of org.apache.commons.compress.archivers.tar.TarArchiveInputStream in project deeplearning4j by deeplearning4j.
the class ArchiveUtils method unzipFileTo.
/**
* Extracts files to the specified destination
* @param file the file to extract to
* @param dest the destination directory
* @throws IOException
*/
public static void unzipFileTo(String file, String dest) throws IOException {
File target = new File(file);
if (!target.exists())
throw new IllegalArgumentException("Archive doesnt exist");
FileInputStream fin = new FileInputStream(target);
int BUFFER = 2048;
byte[] data = new byte[BUFFER];
if (file.endsWith(".zip")) {
//getFromOrigin the zip file content
ZipInputStream zis = new ZipInputStream(fin);
//getFromOrigin the zipped file list entry
ZipEntry ze = zis.getNextEntry();
while (ze != null) {
String fileName = ze.getName();
File newFile = new File(dest + File.separator + fileName);
log.info("file unzip : " + newFile.getAbsoluteFile());
//createComplex all non exists folders
//else you will hit FileNotFoundException for compressed folder
new File(newFile.getParent()).mkdirs();
FileOutputStream fos = new FileOutputStream(newFile);
int len;
while ((len = zis.read(data)) > 0) {
fos.write(data, 0, len);
}
fos.close();
ze = zis.getNextEntry();
}
zis.closeEntry();
zis.close();
} else if (file.endsWith(".tar.gz") || file.endsWith(".tgz")) {
BufferedInputStream in = new BufferedInputStream(fin);
GzipCompressorInputStream gzIn = new GzipCompressorInputStream(in);
TarArchiveInputStream tarIn = new TarArchiveInputStream(gzIn);
TarArchiveEntry entry = null;
while ((entry = (TarArchiveEntry) tarIn.getNextEntry()) != null) {
log.info("Extracting: " + entry.getName());
if (entry.isDirectory()) {
File f = new File(dest + File.separator + entry.getName());
f.mkdirs();
} else /**
* If the entry is a file,write the decompressed file to the disk
* and close destination stream.
**/
{
int count;
FileOutputStream fos = new FileOutputStream(dest + File.separator + entry.getName());
BufferedOutputStream destStream = new BufferedOutputStream(fos, BUFFER);
while ((count = tarIn.read(data, 0, BUFFER)) != -1) {
destStream.write(data, 0, count);
}
destStream.flush();
IOUtils.closeQuietly(destStream);
}
}
/** Close the input stream **/
tarIn.close();
} else if (file.endsWith(".gz")) {
GZIPInputStream is2 = new GZIPInputStream(fin);
File extracted = new File(target.getParent(), target.getName().replace(".gz", ""));
if (extracted.exists())
extracted.delete();
extracted.createNewFile();
OutputStream fos = FileUtils.openOutputStream(extracted);
IOUtils.copyLarge(is2, fos);
is2.close();
fos.flush();
fos.close();
}
target.delete();
}
use of org.apache.commons.compress.archivers.tar.TarArchiveInputStream in project neo4j by neo4j.
the class Loader method openArchiveIn.
private static ArchiveInputStream openArchiveIn(Path archive) throws IOException, IncorrectFormat {
InputStream input = Files.newInputStream(archive);
GzipCompressorInputStream compressor;
try {
compressor = new GzipCompressorInputStream(input);
} catch (IOException e) {
input.close();
throw new IncorrectFormat(archive, e);
}
return new TarArchiveInputStream(compressor);
}
use of org.apache.commons.compress.archivers.tar.TarArchiveInputStream in project hadoop by apache.
the class FileUtil method unTarUsingJava.
private static void unTarUsingJava(File inFile, File untarDir, boolean gzipped) throws IOException {
InputStream inputStream = null;
TarArchiveInputStream tis = null;
try {
if (gzipped) {
inputStream = new BufferedInputStream(new GZIPInputStream(new FileInputStream(inFile)));
} else {
inputStream = new BufferedInputStream(new FileInputStream(inFile));
}
tis = new TarArchiveInputStream(inputStream);
for (TarArchiveEntry entry = tis.getNextTarEntry(); entry != null; ) {
unpackEntries(tis, entry, untarDir);
entry = tis.getNextTarEntry();
}
} finally {
IOUtils.cleanup(LOG, tis, inputStream);
}
}
use of org.apache.commons.compress.archivers.tar.TarArchiveInputStream in project tika by apache.
the class UnpackerResourceTest method testTarDocPicture.
@Test
public void testTarDocPicture() throws Exception {
Response response = WebClient.create(endPoint + UNPACKER_PATH).type(APPLICATION_MSWORD).accept("application/x-tar").put(ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV));
Map<String, String> data = readArchiveFromStream(new TarArchiveInputStream((InputStream) response.getEntity()));
assertEquals(JPG_MD5, data.get(JPG_NAME));
}
use of org.apache.commons.compress.archivers.tar.TarArchiveInputStream in project oap by oaplatform.
the class Archiver method unpack.
@SneakyThrows
public void unpack(Path archive, Path dest, ArchiveType type) {
switch(type) {
case TAR_GZ:
try (TarArchiveInputStream tar = new TarArchiveInputStream(IoStreams.in(archive, GZIP))) {
ArchiveEntry entry;
while ((entry = tar.getNextEntry()) != null) {
Path path = dest.resolve(entry.getName());
if (entry.isDirectory())
path.toFile().mkdirs();
else
IoStreams.write(path, PLAIN, tar);
}
tar.close();
}
}
}
Aggregations