java解压zip文件为空(java解压各种类型的文件)

开发项目过程中,会用到很多工具类,这些就不需要自己花时间去实现了,可以到网上查符合自己要求类,节约时间,提高开发效率。

java解压zip文件为空(java解压各种类型的文件)

/**

* 给定根目录,返回另一个文件名的相对路径,用于zip文件中的路径.

*

* @param baseDir

* java.lang.String 根目录

* @param realFileName

* java.io.File 实际的文件名

* @return 相对文件名

*/

private static String getAbsFileName(String baseDir, File realFileName) {

File real = realFileName;

File base = new File(baseDir);

String ret = real.getName();

while (true) {

real = real.getParentFile();

if (real == null)

break;

if (real.equals(base))

break;

else

ret = real.getName() + “/” + ret;

}

return ret;

}

/**

* 取得指定目录下的所有文件列表,包括子目录.

*

* @param baseDir

* File 指定的目录

* @return 包含java.io.File的List

*/

private static List getSubFiles(File baseDir) {

List ret = new ArrayList();

File[] tmp = baseDir.listFiles();

for (int i = 0; i < tmp.length; i++) {

if (tmp[i].isFile())

ret.add(tmp[i]);

if (tmp[i].isDirectory())

ret.addAll(getSubFiles(tmp[i]));

}

return ret;

}

/**

* 解压缩功能. 将ZIP_FILENAME文件解压到ZIP_DIR目录下.

*

* @throws Exception

*/

public static void upZipFile() throws Exception {

ZipFile zfile = new ZipFile(ZIP_FILENAME);

Enumeration zList = zfile.getEntries();

ZipEntry ze = null;

byte[] buf = new byte[1024];

while (zList.hasMoreElements()) {

ze = (ZipEntry) zList.nextElement();

if (ze.isDirectory()) {

File f = new File(ZIP_DIR + ze.getName());

f.mkdir();

continue;

}

OutputStream os = new BufferedOutputStream(new FileOutputStream(

getRealFileName(ZIP_DIR, ze.getName())));

InputStream is = new BufferedInputStream(zfile.getInputStream(ze));

int readLen = 0;

while ((readLen = is.read(buf, 0, 1024)) != -1) {

os.write(buf, 0, readLen);

}

is.close();

os.close();

}

zfile.close();

}

/**

* 给定根目录,返回一个相对路径所对应的实际文件名.

*

* @param baseDir

* 指定根目录

* @param absFileName

* 相对路径名,来自于ZipEntry中的name

* @return java.io.File 实际的文件

*/

public static File getRealFileName(String baseDir, String absFileName) {

String[] dirs = absFileName.split(“/”);

File ret = new File(baseDir);

if (dirs.length > 1) {

for (int i = 0; i < dirs.length – 1; i++) {

ret = new File(ret, dirs[i]);

}

if (!ret.exists())

ret.mkdirs();

ret = new File(ret, dirs[dirs.length – 1]);

return ret;

}

return ret;

}

/**

* 给zip文件加密方法,需要下载EncryptZip.jar包

*

* @param zipDir

* 要加密的压缩文件

* @param EncryptZipFile

* 加密后文件

* @param password

*密码

*/

public static void encryptionFile(String zipDir,String EncryptZipFile,String password){

System.out.println(“===== 加密 =====”);

File file = new File(zipDir);

byte[] zipByte = ZipOutput.getEncryptZipByte(file.listFiles(), password);

FileUtils.writeByteFile(zipByte, new File(EncryptZipFile));

System.out.println(“===== Encrypt Success =====”);

//return “success”;

}

}

java解压zip文件为空(java解压各种类型的文件)

以上,是我实际项目中用过的zip文件压缩工具类,仅供参考,有什么好的方法,可以评论区交流。

(0)
小多多的头像小多多创始人

相关推荐

  • 路由器亮红灯解决方法(路由器红灯一直亮是什么原因)

    小米2014年发布的R1D路由器至今在俺家已经服役6年多了。由于内置了1T的硬盘,存放一些照片,音乐,电影共享给家庭局域网内的设备使用非常方便,因此说,这个路由器从一开始,它就不仅…

    2021年12月13日 杂谈
  • 寿带鸟多久喂一次

    寿带鸟小的时候要勤喂,长大后一天喂一次就可以,只要保证食罐中永远有食物。它属于软食鸟类,一般只能喂昆虫和肉类,饲养起来有一定的难度。起初需要用苍蝇和蛾类的尸体来诱使其啄食,之后要提…

    杂谈 2021年12月13日
  • 电竞陪练:网生代的新宠

    暑假,不仅是电竞赛事井喷的时段,也是游戏用户活跃度最高、在线时长最久的的时段,此时你随便走进一个95后、00后的社交场所,都能够听到“开黑”“吃鸡”“排位”“上分”等游戏用语。组团…

    杂谈 2021年12月13日
  • 换ip的软件有哪些(永久免费换ip安卓软件)

    手机广泛因为便于携带,使用也方便,手机用户愈来愈多。那么手机的ip地址可以修改吗?答案是肯定的,IP有动态和静态的,动态IP地址指的是在需要时才实现ip地址分配的方式,动态ip和静…

    杂谈 2021年12月13日
  • 肉桂的功效与作用

    肉桂是中药中一种非常常用的药材,通常与其他药材一同搭配使用。药性大热,有温补肾阳之功效,同时对于女性而言也有滋阴补气的功能。并且其蕴含的桂皮油更是能润肺镇咳、化痰生津的作用。通常对…

    杂谈 2022年4月6日
  • 鱼身上起红斑怎么办(鱼身上有红斑像溃烂图片)

    鱼身上起红斑的话,首先要及时给鱼缸换水,让水质尽快得到改善,每次换四分之一左右。之后要稳定水温,温度保持恒定,之后再缓慢升温。如果鱼儿还有浮头等表现,说明是缺氧所致,需要用氧气泵给…

    杂谈 2021年12月13日
  • 熊猫烧香当时谁破解的(2003年熊猫烧香)

    如果有一天,你的电脑屏幕上出现了一只可爱的小熊猫,你会想到什么?这只小熊猫还会给你上香,你会不会觉得十分可爱?这可不是什么可爱的小熊猫,这是一种病毒!2006年,“熊猫烧香”这种病…

    2021年12月10日 杂谈
  • 02摇是什么梗

    02摇是最近网上爆火的一种舞蹈,主要是播放各种动漫、二次元人物通过视频软件剪辑播放身体的摇摆,配上动感的音乐在各大社交平台获取点赞和人气,目前在哔哩哔哩、百度、抖音多家平台都有相关…

    杂谈 2022年4月6日
  • 阿里旗下的app有哪些(阿里投资快手和抖音)

    记者 | 程悦编辑 | 快手宣布组织架构调整,高级副总裁严强即将离职9月28日,快手高级副总裁严强发内部信表示由于“个人及家庭原因”,自己即将离职。在今年7月份的架构调整中,严强曾…

    2021年12月10日
  • 网络攻击的四种基本类型(网络攻击的种类有哪些)

    网络攻击指的是针对计算机或者计算机网络进行破坏、泄露、修改,在没有得到授权的情况下盗取计算机数据的行为。那么比较常见的网络攻击方式有哪些呢?如果大家并不了解,接下来小编就为大家分享…

    杂谈 2021年12月13日
  • 菊花茶的功效与作用

    菊花茶具有散风热、清肝明目的功效,通过饮用菊花茶可以对上火引起的青春痘起到舒缓的作用。菊花还有清肝明目、降火的作用。药理研究菊花对心血管系统的作用尤为显著,它有显著的扩张冠状动脉、…

    杂谈 2022年4月6日
  • 做主播培训需要的条件(主播赚钱的途径是什么)

    近些年,随着游戏行业以及直播的兴起,不少人看游戏直播都成了茶余饭后的一种消遣方式了,也正因为这样,诞生了不少年入千万的游戏主播,也许看到了不少人靠着做主播月入千万,这也使得不少人也…

    2021年12月13日 杂谈
  • 女友说我没有上进心看不到未来要分手怎么办?

    男人和女人在思维上有区别,同样在情感需求上也有不同。女人比男人更需要安全感,所以在选择结婚对象的时候,她们更喜欢那种可以让她觉得有安全感的男人。女人跟一个男人在一起想要的是什么?不…

    杂谈 2022年4月6日
  • b站特殊弹幕是什么样(特殊弹幕和代码弹幕)

    作为一名混迹了B站多年的老油条,对于B站确实有了不一样的感情。现如今B站确实改变了,“破圈”之后迎来了更庞大的群体,让这个属于“二次元”的社区也不断热闹了起来,但有一说一还是比较怀…

    杂谈 2021年12月13日
  • 线上视频面试的个人准备及注意事项

    根据多个招聘平台的数据报告,视频面试成为企业招聘和人才求职的主要方式。视频面试应该注意什么? (一)线上面试前的个人准备 1.个人的形象准备 了解企业招聘要求和经营情况,穿着符合面…

    2022年4月8日

发表回复

登录后才能评论