2017-09-21 09:58:14 Crazyer0214 阅读数 3287
  • 易宝集团陈斌:支撑互联网服务的高可用架构

    高可用网站架构视频解析教程,该课程主要分析了如何构建高可用的网络架构,在移动互联网飞速发展的今天,如何构建一个可扩展高可用的网站技术架构是一门艺术。分享在X轴、Y轴、Z轴扩展方面的理论与实践;分享如何通过泳道隔离技术实现高可用的服务。

    5220 人正在学习 去看看 CSDN讲师

一、文件格式介绍

最近从Linux系统中copy了一个tar。z压缩文件,用于解压测试。

文件格式为*.tar压缩包下,还有*.z压缩包

如:压缩包paid_orderlist_20170920.tar,该tar包下有一个paid_orderlist_20170920.z压缩包,z包下有一个数据文件paid_orderlist_20170920.dat

即如果获取paid_orderlist_20170920.dat文件,需要分别解压tar包和z包。


二、文件解压(java实现)

1.前言

目前网络上解压*.tar文件以及其他压缩格式文件的java例子很多,大多都使用的是

commons-compress-1.x.jar或者javatar-2.x.jar工具进行解压操作。但真正实现解压tar.z文件的例子确不多见。

tar.z格式作为linxu中常见压缩文件格式,java实现解压操作可能会在项目中经常遇到。在参照网上例子及个人实践总结后,成功实现了对该文件的解压操作。

2.jar包准备

所需jar包:commons-compress-1.x.jar(网上介绍说需1.7版本及以上,反正亲测1.4版本不行,下载了1.7版本测试成功)

推荐maven下载:

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-compress</artifactId>
   <version>1.7</version>
</dependency>


3.java代码实现

import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.compressors.z.ZCompressorInputStream;
import java.io.*;
import java.util.*;
/**
 * java解压tar.z文件
 */
public class TarZUtil{
	public static void main(String[] args) {
		File tarFile= new File("E:\\TARZ\\paid_orderlist_20170920.tar");
		List<String> zFileNames = unTarFile(tarFile);
		for (String zFileName:zFileNames ){
			File zFile = new File("E:\\TARZ\\"+zFileName);
			unZFile(zFile,"E:\\TARZ\\");
		}
	}
   /** 
    * 解压*.z文件 * @param file z包文件
    * @param outPath z包下解压后文件存放路径
    * @return 解压后文件 
    */
	public static File unZFile(File file,String outPath) {
		int buffersize = 2048;
		FileOutputStream out = null;
		ZCompressorInputStream zIn = null;
		try {
			FileInputStream fin = new FileInputStream(file);
			BufferedInputStream in = new BufferedInputStream(fin);
			// 若获取z文件名,最好使用lastIndexOf,不要使用indexOf,比如paid_orderlist_20170920.test.z 
			String name = file.getName() .substring(0, file.getName().lastIndexOf("."));
			File outFile = new File(outPath+File.separator + name);
			out = new FileOutputStream(outFile);
			zIn = new ZCompressorInputStream(in);
			final byte[] buffer = new byte[buffersize];
			int n = 0;
			while (-1 != (n = zIn.read(buffer))) {
				out.write(buffer, 0, n);
			}
			return outFile;
		}
		catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		finally {
			try {
				out.close();
				zIn.close();
			}
			catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
    /** 
     * .TAR文件解压
     * @param file 
     */
	public static List<String> unTarFile(File file) {
		int buffersize = 2048;
		String basePath = file.getParent() + File.separator;
		TarArchiveInputStream is = null;
		// 存储tar包下所有z文件名
		List<String> zFileNames = new ArrayList<String>();
		try {
			is = new TarArchiveInputStream(new FileInputStream(file));
			while (true) {
				TarArchiveEntry entry = is.getNextTarEntry();
				if (entry == null) {
					break;
				}
				zFileNames.add(entry.getName());
				if (entry.isDirectory()) {
					// 一般不会执行
					new File(basePath + entry.getName()).mkdirs();
				} else {
					FileOutputStream os = null;
					try {
						File f = new File(basePath + entry.getName());
						if (!f.getParentFile().exists()) {
							f.getParentFile().mkdirs();
						}
						if (!f.exists()) {
							f.createNewFile();
						}
						os = new FileOutputStream(f);
						byte[] bs = new byte[buffersize];
						int len = -1;
						while ((len = is.read(bs)) != -1) {
							os.write(bs, 0, len);
						}
						os.flush();
					}
					catch (Exception e) {
						e.printStackTrace();
					}
					finally {
						os.close();
					}
				}
			}
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			try {
				is.close();
				// 解压后删除tar包
				// file.delete();
			}
			catch (IOException e) {
				e.printStackTrace();
			}
		}
		// 返回tar包下所有文件名
		return zFileNames;
	}
}


参照:http://www.cnblogs.com/w821759016/p/6210818.html



 






2013-01-16 23:00:17 handsomerocco 阅读数 1799
  • 易宝集团陈斌:支撑互联网服务的高可用架构

    高可用网站架构视频解析教程,该课程主要分析了如何构建高可用的网络架构,在移动互联网飞速发展的今天,如何构建一个可扩展高可用的网站技术架构是一门艺术。分享在X轴、Y轴、Z轴扩展方面的理论与实践;分享如何通过泳道隔离技术实现高可用的服务。

    5220 人正在学习 去看看 CSDN讲师

解压方法:

tar zxvf xxx.tar.gz

tar jxvf xxx.tar.bz2

tar Jxvf xxx.tar.xz

tar Zxvf xxx.tar.Z

linux 下 tar只负责打包, gz、xz、bz2、Z等负责压缩。

.gz – z 小写;
.bz2 – j 小写;
.xz – J 大写;
.Z – Z大写
2019-12-28 15:13:57 weixin_46106489 阅读数 18
  • 易宝集团陈斌:支撑互联网服务的高可用架构

    高可用网站架构视频解析教程,该课程主要分析了如何构建高可用的网络架构,在移动互联网飞速发展的今天,如何构建一个可扩展高可用的网站技术架构是一门艺术。分享在X轴、Y轴、Z轴扩展方面的理论与实践;分享如何通过泳道隔离技术实现高可用的服务。

    5220 人正在学习 去看看 CSDN讲师

关于*.7z.001,*.7z.002,...解压问题

用cmd进行操作

1,cmd进入文件目录;

2,命令:copy /b FileName.7z.* FileName.7z,这样就把多个文件合并为一个FileName.7z文件;
z注意.*后接空格
3,最后用WinRAR直接解压缩即可

转载于:https://www.cnblogs.com/dasiy/p/3497112.html

报错原因

1.有该文件,却显示无法找到,应该是文件名出现问题,把所有文件名改为相同全英文,避免过多符号,再次操作即可
2.磁盘已满
……

2016-11-02 16:29:29 u012576527 阅读数 597
  • 易宝集团陈斌:支撑互联网服务的高可用架构

    高可用网站架构视频解析教程,该课程主要分析了如何构建高可用的网络架构,在移动互联网飞速发展的今天,如何构建一个可扩展高可用的网站技术架构是一门艺术。分享在X轴、Y轴、Z轴扩展方面的理论与实践;分享如何通过泳道隔离技术实现高可用的服务。

    5220 人正在学习 去看看 CSDN讲师

一、安装方法

    sudo apt-get install p7zip

二、解压文件

    7z x manager.7z -r -o /home/xx

解释如下:
x 代表解压缩文件,并且是按原始目录解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)manager.7z 是压缩文件,这里大家要换成自己的。如果不在当前目录下要带上完整的目录
-r 表示递归所有的子文件夹
-o 是指定解压到的目录,这里大家要注意-o后是没有空格的直接接目录。

其实如果已经安装成功了p7zip,若解压文件,直接点击要解压的文件,然后点击右键,会出现解压的选项,这样就不必用命令解压。

三、压缩文件

    7z a -t7z -r manager.7z /home/manager/*

解释如下:
a 代表添加文件/文件夹到压缩包
-t 是指定压缩类型 一般我们定为7z
-r 表示递归所有的子文件夹,manager.7z 是压缩好后的压缩包名,/home/manager/* 是要压缩的目录,*是表示该目录下所有的文件。

2018-03-22 13:35:43 weixin_39920509 阅读数 50
  • 易宝集团陈斌:支撑互联网服务的高可用架构

    高可用网站架构视频解析教程,该课程主要分析了如何构建高可用的网络架构,在移动互联网飞速发展的今天,如何构建一个可扩展高可用的网站技术架构是一门艺术。分享在X轴、Y轴、Z轴扩展方面的理论与实践;分享如何通过泳道隔离技术实现高可用的服务。

    5220 人正在学习 去看看 CSDN讲师

解压:

tar –xvf file.tar  解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2   解压 tar.bz2
tar –xZvf file.tar.Z   解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip

linux内核解压

阅读数 1142

没有更多推荐了,返回首页