Возможные Дубликаты:
как вы gunzip файл и сохранить .файл gz ?
я распаковываю файл, используя следующую команду:
gunzip -f test.TGZ
Это дало мне тест.tar-файл, но я потерял теста.Файл TGZ. Есть ли в любом случае, чтобы сохранить исходный файл?
изменить и обновить :
Я вызываю команды распаковки через программу Java. Файл TGZ содержит по крайней мере 1 файл изображения, 1 текст файл и 1 видеофайл.
метод Java: выполните команду
private static InputStream executeCommand(String command, File workingDir)
throws Exception {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(command, null, workingDir);
int exitValue = -1;
try {
exitValue = process.waitFor();
} catch (InterruptedException ignore) {
}
if (exitValue != 0) {
InputStream errStream = process.getErrorStream();
String errMessage = null;
if (errStream.available() > 0) {
byte[] errOutput = new byte[errStream.available()];
errStream.read(errOutput);
errMessage = new String(errOutput);
}
throw new Exception(
"Error in ExtractTGZFileTest.executeCommand(command=""
+ command + "") - " + errMessage);
}
return process.getInputStream();
}
public static void main(String[] args) {
try {
if (args.length == 2 && args[0].equalsIgnoreCase("tgz")) {
String archiveName = args[1];
String tarFilnme = archiveName.substring(0, archiveName
.length()
- ".tgz".length())
+ ".tar";
String gzipCommand = "gzip -c -d " + archiveName + " > "
+ tarFilnme;
InputStream is = ExtractTGZFileTest.executeCommand(gzipCommand,
null);
} else if (args.length == 2 && args[0].equalsIgnoreCase("tgz1")) {
String archiveName = args[1];
String gzipCommand = "gzip --decompress --name --verbose "
+ archiveName;
InputStream is = ExtractTGZFileTest.executeCommand(gzipCommand,
null);
} else {
System.err.println("Usage: command <file1> ");
System.exit(1);
}
System.out.println("DONE");
} catch (Exception ex) {
ex.printStackTrace();
System.exit(2);
}
}
решение: в настоящее время я копирую файл TGZ во временное расположение и работаю с этим файлом.