「javagz解压」JAVA解压zip

博主:adminadmin 2023-01-17 07:33:08 462

今天给各位分享javagz解压的知识,其中也会对JAVA解压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;

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)就可以得到所需要的流了,之后做你需要的操作。

gz后缀怎么解压

1、在Windows系统环境下,安装解压软件,本人以【360压缩】软件为例。

2、找到要解压的.rar.gz文件,右击选择【解压到 ***\(*为文件名)】。

3、图为解压过程。

4、解压完成后,我们便可在当前文件夹下找到解压后的文件。

扩展资料:

linux .gz的解压方法

1、正常情况下,.gz文件,我们可以使用gunzip命令来解压,即如下输入命令:gunzip HelloWorld.java.gz 可解压生成 HelloWorld.java文件,可用vim命令进行编辑。

2、但有时我们明明已经使用gunzip命令解压.gz文件了,可解压生成的文件却依然无法正常读取。如输入命令gunzip HelloWorld.java.gz后,解压生成HelloWorld.java文件,却无法正常使用vi命令进行编辑,打开看到一堆乱码!

4、会出现这种情况,最主要的原因是:由于在linux系统中扩展名可有可无,部分朋友对书写扩展名不是太在意,或者可能是在书写过程中,一时大意,总之,就是书写扩展名时不太规范。要知道,在linux系统中gzip解压命令一般是不单独使用的,而是被命令tar使用参数“z”来调用的。如:tar cvzf HelloWorld.tar.gz HelloWorld.*

5、大家可以看到这时生成的文件扩展名是.tar.gz,而很多小伙伴在书写时很容易就直接写成了.gz。这样本来是需要使用tar zxvf命令来解压的,却被只用gunzip解压,这就造成前面解压后文件不能正常编辑的情况。

6、所以前面使用gunzip解压生成的文件其实还不是普通文件,而是使用tar命令生成的一个包文件。这是我们还需继续运行命令:tar xvf HelloWorld.java,可以看到tar解包后的文件就可以正常使用vi命令编辑了。

java里怎么解压tar.gz文件啊,网上好多例子都不行

最后怎么解决的,我现在也遇到这个问题了,单个文件可以解压可以压缩,写入的测试内容也在,换成文件夹就不行了。能找到的案例全都是解压成文件,但是本身是个文件夹的GZ包解压了以后也打不开。

java解压tar.gz用到哪些包

//引入jtar-(版本号).jar

public void readtar() throws IOException{

    String tarFile = "D:/20120725.tar.gz";

    String destFolder = "D:/20120725";

    File ss=new File(tarFile);

    TarInputStream tis = null;

    tis = new TarInputStream(new GZIPInputStream(new BufferedInputStream(new FileInputStream(ss))));

    TarEntry entry;

    try{

        while((entry = tis.getNextEntry()) != null) {

            int count;

            byte data[] = new byte[204800];

            FileOutputStream fos = new FileOutputStream(new File(destFolder + "/" + entry.getName()));

            BufferedOutputStream dest = new BufferedOutputStream(fos);

            while((count = tis.read(data)) != -1) {

                dest.write(data, 0, count);

            }

            dest.flush();

            dest.close();

        }

        tis.close();

    } catch (FileNotFoundException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    }

}

关于javagz解压和JAVA解压zip的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。