使用java在unix中解压缩.Z文件

Shi*_*itu 5 java unix compression

我在unix框上有一个.Z文件.有没有办法从java调用unix uncompress命令?

小智 5

我还需要解压缩 .Z 档案,通过互联网查看,但没有找到比我下面更好的答案。可以使用 Apache Commons Compress

FileInputStream fin = new FileInputStream("archive.tar.Z");
BufferedInputStream in = new BufferedInputStream(fin);
FileOutputStream out = new FileOutputStream("archive.tar");
ZCompressorInputStream zIn = new ZCompressorInputStream(in);
final byte[] buffer = new byte[buffersize];
int n = 0;
while (-1 != (n = zIn.read(buffer))) {
   out.write(buffer, 0, n);
}
out.close();
zIn.close();
Run Code Online (Sandbox Code Playgroud)

检查此链接

这确实有效


fal*_*tru 0

使用java.lang.Runtime.exec

Runtime.exec("uncompress " + zFilePath);
Run Code Online (Sandbox Code Playgroud)

更新

根据文档,ProcessBuilder.start()首选。

ProcessBuilder pb = new ProcessBuilder("uncompress", zFilePath);
Process p = pb.start();
// p.waitFor();
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用 java 实现来解压缩文件,而不是使用系统命令来解压缩文件,如 @Marian 的答案所示。这样您就可以独立于应用程序运行的操作系统。您还可以避免与在主机系统上执行命令相关的任何安全问题。 (2认同)