Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java解压.taz文件_Java_Compression - Fatal编程技术网

使用Java解压.taz文件

使用Java解压.taz文件,java,compression,Java,Compression,我有一个.taz文件,需要解压缩并从中获取内容。 到目前为止,我做了一些研究,发现了一个提供此功能的商业图书馆() 是否有任何免费/开源的方法可以使用Java从.taz文件中提取内容?您可以尝试,我以前使用过它(用于另一种压缩),但它可以处理zip和tar(不完全确定什么是taz)如果可以接受,我建议您使用console工具压缩/解压缩数据。 几乎所有的java库都有很多不好的方面:性能低下,占用更多的内存和CPU。 我在解压缩几个大文件时遇到问题(要复制,文件应该超过2GB) 我使用下一个代码

我有一个.taz文件,需要解压缩并从中获取内容。 到目前为止,我做了一些研究,发现了一个提供此功能的商业图书馆()


是否有任何免费/开源的方法可以使用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编码。太笼统了。不回答这个问题!