java解压tar

如何解压.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解压tar

idea解压tar包,tomcat服务直接停了

系统问题。idea是Java语言的集成开发,当解压该tar包的时候,tomcat服务直接停止,是由于系统问题的原因,只需要双击此文件,等待其自动关闭后重新运行即可。

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();

    }

}

如何安装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的路径填对就好了。这个过程只有两部,第一步不可能出错,所以一定是配置的问题。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月27日 14:34:00
下一篇 2024年3月27日 14:42:28

相关推荐

  • java微信发货接口,java接入微信支付

    java如何调用微信接口发送文件到微信群 目前微信没有开放发送文件到微信群的api,毕竟开放了很有可能会被微商利用,只能上传至公众号的图文素材,再进行推送。但不管是订阅号还是服务号,推送都有限制。 用微信公众平台提供的接口 2 直接抓取微信公众平台网站上的数据包(几乎所有请求都是ajax形式,并返回Json数组的),用httpclient来模拟。1的好处是:…

    2024年5月19日
    3200
  • java盈利,java赚外快

    开源java框架怎么盈利? 卖Java配套软件,比如Sun ONE Studio Enterprise Edition要钱,而且很贵。提供服务。比如Sun ONE Studio Standard Edition不要钱,但是技术支持要钱。Sun One Application server Identy Server 好多好多,好贵好贵。 开源社区版让大家了解…

    2024年5月19日
    4600
  • java调用扫描仪twain,java扫描器的用法

    Java中怎么调用扫描枪 扫描控制台输入当通过newScanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。 总之c/s架构的java程序调用扫描仪通过jni+twain编程既可完成。 比…

    2024年5月19日
    3600
  • javaenum单利,java 单利

    JAVA枚举的作用与好处 枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。 枚举类型最大的特点就是:构造函数是private修饰的,也就是不能对其进行new,对象的实例都是预定义的,也就是在类加载的时候都是定义好了的,不会给其它调用去创建实例的机会。 第四种:饿汉模式…

    2024年5月19日
    4400
  • java与c语言哪个好,java语言和c语言哪个更好

    c语言和java哪个就业好 1、C语言比较好学,简单,速成。C语言用得比较广,而且是很成熟的面向过程的一门语言。 2、这两种语言都是当今热门语言,但是从应用场景和就业前景来看,Java语言具有一定的优势,对于新手来说学习起来会更简单。从学习难度来看,Java语言要比C语言简单一些。 3、Java,毫无争议排名第一的工业语言,可以跨平台使用,且安全系数高、稳定…

    2024年5月19日
    3900
  • java增加菜单栏,java菜单栏不见了

    如何在Java的新窗口中添加菜单栏 menuBar中有文件和帮助两个菜单,分别还有子菜单,并将menuBar添加到JFrame中。希望对你有帮助。 如果代码运行没有报错,那就是添加成功了。只是展示的时候,由于你的menubar没内容,所以看不出效果。你可以再menuBar中添加一个JMenu,然后再看看效果。PS:java桌面程序,java自己都放弃了。 )…

    2024年5月19日
    3500
  • java中怎么插入图片,如何给java添加图片

    java如何在画布上添加图片 1、然后在现在这个类里要用的话,用mycanvas代替canvas,要改变绘图的话,只需要调用repaint方法即可。 2、//设置标签的尺寸,即背景图象的大小。().setOpaque(false);/*把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。*/ pnlMain.add(lb…

    2024年5月19日
    4200
  • java解析md文件格式,md java

    md3文件用什么东西打开? 1、试着用QQ影音或暴风影音 来打开。MD3文件是一种在queke3中使用的模型数据文件,MD3模型动画,是经典的关键帧动画。 2、用记事本打开。首先来普及一下什么是md文件,markdown也是一种标记语言。md文件其实可以用常用的文本编辑器都可以打开,如记事本sublime等等。用记事本打开,把markdown文件拖到记事本图…

    2024年5月19日
    4200
  • javabytebuffer读取,java读取byte数据

    java读取图片到byteBuffer中 1、下面给你提供一个实现,该实现采用了代理模式。这个实现包含两个文件,分别是Client.java和ImageIcoProxy.java,ImageIcoProxy.java负责了图片的延迟加载,你可以修改为不延迟即可。 2、使用jsoup解析到这个url就行,dom结构如下:look-inside-cover类只有…

    2024年5月19日
    3700
  • java怎么输出html文件,java怎么输出hello world

    编写程序,将一个Java文件转换为HTML一个文件 1、就是在工作空间把你的.class弄到一个文件夹里面,然后再这个文件夹里面编写一个.html文件。这个html文件要用到用HTTP标记语言。当然你也可以借助Dreamweaver软件来做这个.html文件。所以你还需要学习网页设计才懂这方面的知识。 2、你要像手动输出html的展示内容可以自己写一个ser…

    2024年5月19日
    4200

发表回复

登录后才能评论



关注微信