java 解压tar
时间: 2023-11-16 21:56:34 浏览: 40
Java可以使用Apache Commons Compress库来解压tar文件。下面是一个简单的示例代码:
```
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import java.io.*;
public class TarExtractor {
public static void extractTarGz(StringJava可以使用Apache Commons Compress库来解压tar文件。下面是解压tar文件的步骤:
1. 导入Apache Commons Compress库。
2. 创建TarArchiveInputStream对象并传入要解压的tar文件的FileInputStream。
3. 循环读取TarArchiveEntry对象,直到读取到null为止。
4. 对于每个TarArchiveEntry对象,使用FileOutputStream创建一个新文件,并将TarArchiveInputStream中的数据写入该文件。
5. 关闭TarArchiveInputStream和FileOutputStream。
下面是示例代码:
```
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import java.io.*;
public class TarExtractor {
public static void extractTar(File tarFile, File destDir) throws IOException {
try (TarArchiveInputStream tarIn = new TarArchiveInputStream(new FileInputStream(tarFile))) {
TarArchiveEntry entry;
while ((entry = tarIn.getNextTarEntry()) != null) {
File outputFile = new File(destDir, entry.getName());
if (entry.isDirectory()) {
if (!outputFile.exists()) {
outputFile.mkdirs();
}
} else {
try (OutputStream out = new FileOutputStream(outputFile)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = tarIn.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
}
}
}
}
}
}
```