//引入jtar-(版本號).jar
publicvoidreadtar()throwsIOException{
StringtarFile="D:/20120725.tar.gz";
StringdestFolder="D:/20120725";
Filess=newFile(tarFile);
TarInputStreamtis=null;
tis=newTarInputStream(newGZIPInputStream(newBufferedInputStream(newFileInputStream(ss))));
TarEntryentry;
try{
while((entry=tis.getNextEntry())!=null){
intcount;
bytedata[]=newbyte[204800];
FileOutputStreamfos=newFileOutputStream(newFile(destFolder+"/"+entry.getName()));
BufferedOutputStreamdest=newBufferedOutputStream(fos);
while((count=tis.read(data))!=-1){
dest.write(data,0,count);
}
dest.flush();
dest.close();
}
tis.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
② Java 怎麼解壓zlib函數庫壓縮的tar.gz格式的文件
這個文件不是在windows環境下解壓的,它是在linux系統下的壓縮文件。你應該解壓zip格式的壓縮包
③ 如何解壓.tar.gz gzip gz 類型文檔
java解壓縮.gz .zip .tar.gz等格式的壓縮包方法總結
1、.gz文件是linux下常見的壓縮格式。使用 java.util.zip.GZIPInputStream即可,壓縮是 java.util.zip.GZIPOutputStream
1 public static void unGzipFile(String sourcedir) {
2 String ouputfile = "";
3 try {
4 //建立gzip壓縮文件輸入流
5 FileInputStream fin = new FileInputStream(sourcedir);
6 //建立gzip解壓工作流
7 GZIPInputStream gzin = new GZIPInputStream(fin);
8 //建立解壓文件輸出流
9 ouputfile = sourcedir.substring(0,sourcedir.lastIndexOf('.'));
10 ouputfile = ouputfile.substring(0,ouputfile.lastIndexOf('.'));
11 FileOutputStream fout = new FileOutputStream(ouputfile);
12
13 int num;
14 byte[] buf=new byte[1024];
15
16 while ((num = gzin.read(buf,0,buf.length)) != -1)
17 {
18 fout.write(buf,0,num);
19 }
20
21 gzin.close();
22 fout.close();
23 fin.close();
24 } catch (Exception ex){
25 System.err.println(ex.toString());
26 }
27 return;
28 }
2、zip文件,使用java.util.zip.ZipEntry 和 java.util.zip.ZipFile
1 /**
2 * 解壓縮zipFile
3 * @param file 要解壓的zip文件對象
4 * @param outputDir 要解壓到某個指定的目錄下
5 * @throws IOException
6 */
7 public static void unZip(File file,String outputDir) throws IOException {
8 ZipFile zipFile = null;
9
10 try {
11 Charset CP866 = Charset.forName("CP866"); //specifying alternative (non UTF-8) charset
12 //ZipFile zipFile = new ZipFile(zipArchive, CP866);
13 zipFile = new ZipFile(file, CP866);
14 createDirectory(outputDir,null);//創建輸出目錄
15
16 Enumeration<?> enums = zipFile.entries();
17 while(enums.hasMoreElements()){
18
19 ZipEntry entry = (ZipEntry) enums.nextElement();
20 System.out.println("解壓." + entry.getName());
21
22 if(entry.isDirectory()){//是目錄
23 createDirectory(outputDir,entry.getName());//創建空目錄
24 }else{//是文件
25 File tmpFile = new File(outputDir + "/" + entry.getName());
26 createDirectory(tmpFile.getParent() + "/",null);//創建輸出目錄
27
28 InputStream in = null;
29 OutputStream out = null;
30 try{
31 in = zipFile.getInputStream(entry);;
32 out = new FileOutputStream(tmpFile);
33 int length = 0;
34
35 byte[] b = new byte[2048];
36 while((length = in.read(b)) != -1){
37 out.write(b, 0, length);
38 }
39
40 }catch(IOException ex){
41 throw ex;
42 }finally{
43 if(in!=null)
44 in.close();
45 if(out!=null)
46 out.close();
47 }
48 }
49 }
50
51 } catch (IOException e) {
52 throw new IOException("解壓縮文件出現異常",e);
53 } finally{
54 try{
55 if(zipFile != null){
56 zipFile.close();
57 }
58 }catch(IOException ex){
59 throw new IOException("關閉zipFile出現異常",ex);
60 }
61 }
62 }
63
64 /**
65 * 構建目錄
66 * @param outputDir
67 * @param subDir
68 */
69 public static void createDirectory(String outputDir,String subDir){
70 File file = new File(outputDir);
71 if(!(subDir == null || subDir.trim().equals(""))){//子目錄不為空
72 file = new File(outputDir + "/" + subDir);
73 }
74 if(!file.exists()){
75 if(!file.getParentFile().exists())
76 file.getParentFile().mkdirs();
77 file.mkdirs();
78 }
79 }
3、.tar.gz文件可以看做先用tar打包,再使用gz進行壓縮。
使用org.apache.tools.tar.TarEntry; org.apache.tools.tar.TarInputStream 和 org.apache.tools.tar.TarOutputStream
1 //------------------------------------------------------------------------------------------------------
2 /**
3 * 解壓tar.gz 文件
4 * @param file 要解壓的tar.gz文件對象
5 * @param outputDir 要解壓到某個指定的目錄下
6 * @throws IOException
7 */
8 public static void unTarGz(File file,String outputDir) throws IOException{
9 TarInputStream tarIn = null;
10 try{
11 tarIn = new TarInputStream(new GZIPInputStream(
12 new BufferedInputStream(new FileInputStream(file))),
13 1024 * 2);
14
15 createDirectory(outputDir,null);//創建輸出目錄
16
17 TarEntry entry = null;
18 while( (entry = tarIn.getNextEntry()) != null ){
19
20 if(entry.isDirectory()){//是目錄
21 entry.getName();
22 createDirectory(outputDir,entry.getName());//創建空目錄
23 }else{//是文件
24 File tmpFile = new File(outputDir + "/" + entry.getName());
25 createDirectory(tmpFile.getParent() + "/",null);//創建輸出目錄
26 OutputStream out = null;
27 try{
28 out = new FileOutputStream(tmpFile);
29 int length = 0;
30
31 byte[] b = new byte[2048];
32
33 while((length = tarIn.read(b)) != -1){
34 out.write(b, 0, length);
35 }
36
37 }catch(IOException ex){
38 throw ex;
39 }finally{
40
41 if(out!=null)
42 out.close();
43 }
44 }
45 }
46 }catch(IOException ex){
47 throw new IOException("解壓歸檔文件出現異常",ex);
48 } finally{
49 try{
50 if(tarIn != null){
51 tarIn.close();
52 }
53 }catch(IOException ex){
54 throw new IOException("關閉tarFile出現異常",ex);
55 }
56 }
57 }
使用到的包頭有:
1 import java.io.BufferedInputStream;
2 import java.io.File;
3 import java.io.FileInputStream;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.io.OutputStream;
8
9 import java.nio.charset.Charset;
10 import java.util.Enumeration;
11 import java.util.zip.GZIPInputStream;
12 import java.util.zip.ZipEntry;
13 import java.util.zip.ZipFile;
14
15 import org.apache.tools.tar.TarEntry;
16 import org.apache.tools.tar.TarInputStream;
17 import org.apache.tools.tar.TarOutputStream;
④ 如何安裝tar.gz版本的java
總體步驟是「解壓」然後「配置」,細節上講:
1解壓 :tar -zxvf java的tar.gz
2配置:vi /etc/profile //打開配置全局變數文件
export JAVA_HOME=剛才解壓的目錄
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3.測試一下 輸入java看是不是有反應,再試試java -version能不能讀出java的版本號。
配置內容(就是export。。。)在網上有很多種,記得java_home的路徑填對就好了。這個過程只有兩部,第一步不可能出錯,所以一定是配置的問題。
⑤ java 解壓不是壓縮的文件
使用java調用winrar解壓,如果需要的話然後讀取解壓後的文件
⑥ java 中 gz是什麼文件
linux壓縮文件。。。
可以在命令行中用tar解壓,也可以直接右鍵解壓縮
⑦ 新人求助,JDK壓縮包解壓不了
一、下載首先,下載jdkforubuntu。按照需要選擇不同的版本。這里選擇的是jdk-7u45。jdk-7u45-linux-x64.tar.gz
二、解壓將下載下來的.tar.gz文件解壓。使用如下命令解壓:sudotarzxvf./jdk-7u45-linux-x64.tar.gz
三、設置環境變數編輯.bashrc文件。在終端輸入如下命令:vi~/.bashrc在該文件的末尾,加上以上幾行代碼:exportJAVA_HOME=/opt/Java/jdk/jdk1.7exportCLASSPATH=${JAVA_HOME}/libexportPATH=${JAVA_HOME}/bin:$PATH四、驗證通過以上步驟,JDK已安裝完成。
⑧ java里怎麼解壓tar.gz文件啊,網上好多例子都不行
最後怎麼解決的,我現在也遇到這個問題了,單個文件可以解壓可以壓縮,寫入的測試內容也在,換成文件夾就不行了。能找到的案例全都是解壓成文件,但是本身是個文件夾的GZ包解壓了以後也打不開。
⑨ java如何解壓.gz後綴的壓縮包
File file = new File(zipFilePath); 將zip文件路徑轉換 成文件
zipFile = new ZipFile(file); 調用java util下面的zipfile類
Enumeration<?> zipEnum = zipFile.entries(); 將zip文件裡面的內容都放在迭代器裡面了
ZipEntry entry = (ZipEntry) zipEnum.nextElement();,然後迭代出ZipEntry對象。
zipFile.getInputStream(entry)就可以得到所需要的流了,之後做你需要的操作。
⑩ 用java如何解析gz文件
一個偷懶的做法是調用操作系統命令把gz解壓縮,然後再讀取。網上也許能找到一些操作gz的java庫。