解压特定zip压缩文件中特定文件,Java
Posted zhangphil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解压特定zip压缩文件中特定文件,Java相关的知识,希望对你有一定的参考价值。
解压特定zip压缩文件中指定文件,Java
有些时候,zip压缩文件特别大动辄几GB,但是只想要其中某一个特定文件,此时就完全没必要把全量文件都解压出来,只需解压指定文件即可。
public static void decompress(String targetFileName, String srcPath, String destPath) throws Exception
File file = new File(srcPath);
if (!file.exists())
throw new RuntimeException(srcPath + "不存在");
ZipFile zf = new ZipFile(file);
Enumeration entries = zf.entries();
ZipEntry entry;
while (entries.hasMoreElements())
entry = (ZipEntry) entries.nextElement();
String name = entry.getName();
if (!name.endsWith(targetFileName))
continue;
File dir = new File(destPath);
if (!dir.exists())
dir.mkdirs();
File f = new File(dir + File.separator + targetFileName);
if (!f.exists())
f.createNewFile();
InputStream is = zf.getInputStream(entry);
FileOutputStream fos = new FileOutputStream(f);
int count;
byte[] buffer = new byte[1024 * 8];
while (true)
count = is.read(buffer);
if (count == -1)
break;
fos.write(buffer, 0, count);
is.close();
fos.close();
上面功能函数首先从srcPath加载zip压缩文件,然后对zip压缩文件里面包含的每个文件进行过滤筛选,搜索到名字为targetFileName的文件后,将其解压到destPath目录文件夹下。
以上是关于解压特定zip压缩文件中特定文件,Java的主要内容,如果未能解决你的问题,请参考以下文章