package impl; import inter.AbstractUnCompressService; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import org.apache.tools.tar.TarEntry; import org.apache.tools.tar.TarInputStream; /** * This class is used to uncompress bz2 compress file * @author Jacky.Dong * */ public class BZ2UnCompressServiceImpl extends AbstractUnCompressService { private static final String SUFFIX_BZ2 = ".tar.bz2"; @Override public void unCompressFolder(String folder) { // TODO Auto-generated method stub } @Override public void unCompressFile(String inputFilePath, String outputDir) throws IOException { File inputFile = new File(inputFilePath); if (outputDir == null) { outputDir = inputFile.getPath().replace(SUFFIX_BZ2, "") + File.separator; } try { // create a gzip input stream TarInputStream tarIn = new TarInputStream(new BZip2CompressorInputStream( new FileInputStream(inputFile))); TarEntry entry = null; while ((entry = tarIn.getNextEntry()) != null) { // if entry is a directory ,we should create a new directory if (entry.isDirectory()) { createDirectory(outputDir, entry.getName());// 创建空目录 } else { // if entry is a file ,we should add this file to related // folder and write content to the file File tmpFile = new File(outputDir + File.separator + entry.getName()); createDirectory(tmpFile.getParent() + File.separator, null); OutputStream out = null; try { out = new FileOutputStream(tmpFile); int length = 0; byte[] b = new byte[BUFFEREDSIZE]; while ((length = tarIn.read(b)) != -1) { out.write(b, 0, length); } } catch (IOException ex) { throw ex; } finally { if (out != null) out.close(); } } } } catch (Exception ex) { System.err.println(ex.toString()); } } }
相关推荐
7. **处理GZ或BZ2压缩的tar文件**:有时,tar文件可能被gzip或bzip2进一步压缩,为了解压这些文件,你需要先使用`GZIPInputStream`或`BZip2CompressorInputStream`,然后再创建`TarInputStream`。 在实际开发中,你...
本文将详细解析如何利用Java实现压缩文件的功能,并深入探讨相关的知识点。 首先,`java.util.zip`包提供了对ZIP文件格式的支持。在Java中,`ZipOutputStream`是用于创建ZIP文件的主要类,它继承自`...
tar文件可以与其他压缩工具(如gzip或bzip2)结合使用,形成如.tar.gz或.tar.bz2的压缩格式。 这个“Compressor-master”工具类可能包含以下核心功能: - **压缩**:对于zip和rar格式,工具可能使用了Java的第三方...
这两个压缩文件,"apktool1.5.2.tar.bz2" 和 "apktool-install-linux-r05-ibot.tar.bz2" 提供了不同版本的APKTool,可能是针对不同操作系统或包含不同功能的版本。 首先,让我们深入了解APKTool的核心功能: 1. **...
- `bzip2 FileName`:将 FileName 文件进行 bzip2 压缩,生成 FileName.bz2 文件。 ### 5. .tar.bz2 - 组合压缩格式 **解压**: - `tar jxvf FileName.tar.bz2`:首先使用 bzip2 解压,然后使用 tar 解包。 - `j`...
- **.bz2**: `application/x-bzip2`,用于BZip2压缩文件。 #### 其他文件 - **.pdf**: 虽然未列出,但通常用于PDF文档,其MIME类型为 `application/pdf`。 - **.class**: `application/java` 或 `application/x-...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
《深入解析Common Compress压缩库》 在Java开发中,数据压缩是一项常用的技术,它可以有效减少文件存储空间,提高传输效率。Common Compress是Apache软件基金会提供的一个开源库,专门用于处理各种压缩格式,如ZIP...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
- **下载内容**:im4java-1.3.2-src.tar.bz2 源码包。 - **使用方法**:解压后将jar包添加到项目的类路径中。 #### 三、配置环境变量 为了使ImageMagick能够在Java程序中被调用,需要进行环境变量的配置: 1. *...
GDAL (Geospatial Data Abstraction Library) 是一个开源的库,用于处理地理空间数据,如...务必确保所有依赖项都正确安装,以确保 GDAL 能够在 CentOS 7 系统上正常工作,并且能够在 Java 服务中调用以解析地理数据。