-3
我在java中生成了.tar.gz文件。在java中生成.tar.gz文件
當我試圖打開這個,我得到異常爲「Unable to read header of that file
」,它也要求一些重寫。
它也拋出誤差
無法打開文件:它不似乎是一個有效的歸檔。 我的代碼如下
import java.io.File;
import java.io.FileInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class Tarzlatest {
public static void main(String[] args) {
File file =new File(path);
String gzipFile = path;
String newFile = path ;
compressGzipFile(file, gzipFile);
decompressGzipFile(gzipFile, newFile);
}
private static void decompressGzipFile(String gzipFile, String newFile) {
try {
FileInputStream fis = new FileInputStream(gzipFile);
GZIPInputStream gis = new GZIPInputStream(fis);
FileOutputStream fos = new FileOutputStream(newFile);
byte[] buffer = new byte[1024];
int len;
while((len = gis.read(buffer)) != -1){
fos.write(buffer, 0, len);
}
//close resources
fos.close();
gis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void compressGzipFile(File dir, String gzipFile) {
try {
File[] flist = dir.listFiles();
for(int i=0; i<flist.length; i++)
{
FileInputStream fis = new FileInputStream(flist[i]);
FileOutputStream fos = new FileOutputStream(gzipFile);
GZIPOutputStream gzipOS = new GZIPOutputStream(fos);
byte[] buffer = new byte[1024];
int len;
while((len=fis.read(buffer)) != -1){
gzipOS.write(buffer, 0, len);
}
//close resources
gzipOS.close();
fos.close();
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
請給我們展示一些代碼。 – Brian
什麼是「打開」?用什麼? – fge
您是如何生成存檔文件的? – Batty