使用Java解压.taz文件
我有一个.taz文件,需要解压缩并从中获取内容。 到目前为止,我做了一些研究,发现了一个提供此功能的商业图书馆()使用Java解压.taz文件,java,compression,Java,Compression,我有一个.taz文件,需要解压缩并从中获取内容。 到目前为止,我做了一些研究,发现了一个提供此功能的商业图书馆() 是否有任何免费/开源的方法可以使用Java从.taz文件中提取内容?您可以尝试,我以前使用过它(用于另一种压缩),但它可以处理zip和tar(不完全确定什么是taz)如果可以接受,我建议您使用console工具压缩/解压缩数据。 几乎所有的java库都有很多不好的方面:性能低下,占用更多的内存和CPU。 我在解压缩几个大文件时遇到问题(要复制,文件应该超过2GB) 我使用下一个代码
是否有任何免费/开源的方法可以使用Java从.taz文件中提取内容?您可以尝试,我以前使用过它(用于另一种压缩),但它可以处理zip和tar(不完全确定什么是taz)如果可以接受,我建议您使用console工具压缩/解压缩数据。 几乎所有的java库都有很多不好的方面:性能低下,占用更多的内存和CPU。 我在解压缩几个大文件时遇到问题(要复制,文件应该超过2GB) 我使用下一个代码来解压缩压缩文件列表
public int extractFiles(final String zipFile, final File folder, final String[] neededFiles) throws IOException {
try {
final String filesString = StringUtils.join(neededFiles, " ");
final String command = "/bin/tar -xvf " + zipFile + " " + filesString;
logger.info("Start unzipping: {} into the folder {}", command, folder.getPath());
final Runtime r = Runtime.getRuntime();
final Process p = r.exec(command, null, folder);
logger.debug("process started");
final int returnCode = p.waitFor();
if (logger.isWarnEnabled()) {
final BufferedReader is = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = is.readLine()) != null) {
logger.warn(line);
}
final BufferedReader is2 = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((line = is2.readLine()) != null) {
logger.warn(line);
}
}
logger.info("File {} unzipped [code = {}]", zipFile, returnCode);
return returnCode;
} catch (final InterruptedException e) {
logger.error("Error", e);
return -1;
}
}
此选项速度更快,并且不需要大量内存。
当然,此方法依赖于平台,但适用于所有(几乎所有)Unix系统
另外,实际上大多数代码只是记录:)。如果这是一个选项,您可以始终使用操作系统中的命令。显然,只有在您知道
时才使用重复的命令。taz
意味着LZW编码。太笼统了。不回答这个问题!