知方号

知方号

Java压缩技术之解压篇,支持:ZIP、RAR、7Z、TAR、GZ、TAR.GZ、BZ2、TAR.BZ2

Java压缩技术之解压篇,支持:ZIP、RAR、7Z、TAR、GZ、TAR.GZ、BZ2、TAR.BZ2

前言

这篇文章主要讲解Java解压的操作,后续会写一篇关于压缩的文章。

提醒:文章中有些片段看似代码很多,其实去除trycatch、释放资源真正有用的代码没几句,解压其实都很简单,主要用心去观察,都是依葫芦画瓢。

 

首先,先写一个类似辅助的视图类 1 public enum FileType { 2 // 未知 3 UNKNOWN, 4 // 压缩文件 5 ZIP, RAR, _7Z, TAR, GZ, TAR_GZ, BZ2, TAR_BZ2, 6 // 位图文件 7 BMP, PNG, JPG, JPEG, 8 // 矢量图文件 9 SVG,10 // 影音文件11 AVI, MP4, MP3, AAR, OGG, WAV, WAVE12 }

这个类主要是用来将各种文件的类型集中管理,当然,不写这个类也是可以的,可以直接用字符串去表示。

 

然后,我还写了一个获取文件真实类型的方法

为什么要写这个方法呢?因为,我们是可以直接去修改文件的后缀的,这样很危险!

1 /** 2 * 获取文件真实类型 3 * 4 * @param file 要获取类型的文件。 5 * @return 文件类型枚举。 6 */ 7 private static FileType getFileType(File file){ 8 FileInputStream inputStream =null; 9 try{10 inputStream = new FileInputStream(file);11 byte[] head = new byte[4];12 if (-1 == inputStream.read(head)) {13 return FileType.UNKNOWN;14 }15 int headHex = 0;16 for (byte b : head) {17 headHex

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。