java解压在线tgz文件
比如我们要解压这个url下 http://域名:端口号/文件夹/datai-cli-0.0.2.tgz,datai-cli-0.0.2.tgz的tgz文件里的某个文件,然后在上传,废话不多说了,上代码了
抓取url里的tgz文件,解压成inpitStream
public InputStream downLoadFromUrl(String urlStr) throws IOException{URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection)url.openConnection();//设置超时间为3秒conn.setConnectTimeout(3*1000);//防止屏蔽程序抓取而返回403错误conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//得到输入流InputStream inputStream = conn.getInputStream();return inputStream;}
List<File> file = unTar(new GzipCompressorInputStream(inputStream),destDir);
解压tgz文件,找到特定文件 返回fiel集合,上传
private List<File> unTar(InputStream inputStream, String destDir) throws Exception {TarArchiveInputStream tarIn = new TarArchiveInputStream(inputStream, BUFFER_SIZE);TarArchiveEntry entry = null;List<File> list = new ArrayList<>();try {while ((entry = tarIn.getNextTarEntry()) != null) {//是目录if (entry.isDirectory()) {//创建空目录createDirectory(destDir, entry.getName());//是文件} else {//在tgz压缩包里包含package/dist文件下的文件if(entry.getName().contains("package/dist")){File tmpFile = new File(File.separator + entry.getName());//创建输出目录createDirectory(tmpFile.getParent() + File.separator, null);OutputStream out = null;try {out = new FileOutputStream(tmpFile);int length = 0;byte[] b = new byte[2048];while ((length = tarIn.read(b)) != -1) {out.write(b, 0, length);}} finally {IOUtils.closeQuietly(out);}//添加文件(可能多个)list.add(tmpFile);}}}} catch (Exception e) {e.printStackTrace();throw e;} finally {IOUtils.closeQuietly(tarIn);}return list;}public static void createDirectory(String outputDir, String subDir) {File file = new File(outputDir);if (!(subDir == null || subDir.trim().equals(""))) {//子目录不为空file = new File(outputDir + File.separator + subDir);}if (!file.exists()) {file.mkdirs();}}
到这里就解压tgz文件,上传特定文件就结束了,上传代码就不贴了
java解压在线tgz文件相关推荐
- java解压/读取rar文件
转自在此感谢作者:https://blog.csdn.net/lbf5210/article/details/51206642 <!-- 解压rar --> <dependency& ...
- java util zip.zipexc,JAVA解压zip压缩文件的实例
今天在弄一个东西,需要在PL/SQL中解压zip的压缩包,刚开始的时候是想着直接在PLSQL中调用java,在java里面调用unzip的shell命令来解析压缩文件,但是比较悲剧,一直老是失败,在尝 ...
- Java解压rar5压缩文件
使用代码解压压缩文件,并指定解压后路径 导入依赖 <dependency><groupId>com.github.axet</groupId><artifac ...
- java 解压zip文件
public class UnZipUtils {public static synchronized boolean unzip(String zipFileName, String extPlac ...
- Java解压压缩加密文件zip
前言 ❤Java学习路线个人总结-博客 ❤欢迎点赞
- java 解压tgz文件
java 解压tgz文件 pom 引入依赖 <dependency><groupId>org.apache.commons</groupId><artifac ...
- Java解压zip文件(文本)压缩包
2019独角兽企业重金招聘Python工程师标准>>> 说明:由于我们的日志收集到指定服务器上,会按天压缩成一个zip格式的压缩包,但是有时候需要对这些日志进行处理,人工解压在处理, ...
- java zip malformed_关于Java解压文件的一些坑及经验分享(MALFORMED异常)
关于Java解压文件的一些坑及经验分享 就在本周, 测试人员找到我说现上的需求文档(zip格式的)无法预览了, 让我帮忙看看怎么回事. 这个功能也并不是我做的, 于是我便先看看线上日志有没有什么错误, ...
- java解压gz文件
http://panshaobinsb.iteye.com/blog/1566231 下面是网上的代码 http://www.iteye.com/topic/894879 Java代码 impor ...
最新文章
- 杂项相关工具的使用方法(边刷题边更新...)
- 内蒙古高考2021年成绩查询,内蒙古招生考试信息网:2021年内蒙古高考查分入口、查分系统...
- vsco怎么两个滤镜叠加_PS插件 VSCO滤镜137款预设安装使用教程
- mysql tree 和 hash_mysql_B-tree索引和哈希索引
- Puppet之基础篇
- 交出20分钟后就得到面试通知的一份答卷
- ArcFace 论文阅读及 pytorch 实现
- 华为手机自带的双系统模式,你知道吗?一部手机当两部使用
- 关于“该计算机已安装更高版本的Google Chrome浏览器“问题解决方法
- 外包的水有多深?华为15k+的外包测试岗能去吗?
- 重装系统后Oracle数据库恢复的方法
- php商城系统源码的好处有哪些?
- vue报错Navigating to current location (/login) is not allowed
- matlab画图双坐标轴和多坐标轴代码
- 【NLP】DSSM深度结构化语义模型原理
- 《剑指offer 阅读笔记一》程序员面试流程,面试游刃有余
- 【TARS】TARS中的nodejs
- Openssl 对称加解密函数 - EVP_Cipher、EVP_Encrypt、EVP_Decryp 系列
- 将jar添加到本地仓库及上传Jar到远程marven仓库
- 自动插入匹配与标题相关的百度图片或者搜狗图片软件-批量插入txt文档-Chatgpt批量写文章配图神器
热门文章
- NAMD 中计算水分子沿某一放向的平均值 (tcl/tk 脚本输出数据, awk 求某一列平均值)
- (平衡)kd树的创建与搜索
- 域名使用HTTPS的相关配置
- Java如何获取IP属地 ip2region failed to create searcher with x:java.io.FileNotFoundException:( 系统找不到指定的路径)
- mybatis错误:Could not resolve resource location pattern [classpath:com/demon/user/mapper/*.xml]: class
- C++解析IconFont矢量字体文件ttf,以及无锯齿显示矢量字体
- wps中制作图表目录
- revit管线插件:当前楼层怎么显示楼板以下的给排水管道?
- server 2008 r2 怎么打开任务管理?
- 求教如何实现VB.NET控件随着窗体的放大而放大