java判断压缩包内是否存在指定文件
- 作者:
- 淡白
- 创建时间:
- 2020-05-20 09:02:03
- zip
摘要:以上代码是用于判断压缩包内是否存在名为index.html的文件。 其中,通过`ZipInputStream`从输入流中读取压缩包的文件流。通过`zin.getNextEntry()`获得压缩包中的文件,然后判断文件名是否为index.html。若存在index.html文件,则将变量`ifThere`置为true,跳出循环。 最后,根据`ifThere`的值来判断是否存在index.html文件,并返回对应的响应。 另外,如果有文件对象,可以直接使用`ZipFile`来读取压缩包内的文件。可以通过`zipfile.getEntry("index.html")`获取index.html文件的入口,并通过`.getName()`获取文件名。
业务需求,需要判断压缩包内是否存在index.html文件.不通过解压进行判断. 通过ZipInputStream获取文件流进行判断.
上代码:
//判断是否存在index.html
boolean ifThere=false;
try {
InputStream in = new BufferedInputStream(file.getInputStream());
ZipInputStream zin = new ZipInputStream(in,Charset.forName("gbk"));
ZipEntry ze;
while ((ze = zin.getNextEntry()) != null) {
if (ze.isDirectory()) {
} else {
String name = ze.getName();
if(name.toLowerCase().equals(WallpaperConstant.INDEX)){
ifThere=true;
break;
}
}
}
zin.closeEntry();
} catch (IOException e) {
e.printStackTrace();
}
if(!ifThere){
return Response.Err(WallpaperConstant.NOT_FIND_INDEX);
}
上面的代码是读取http请求中的文件流 如果有文件对象能直接读取指定文件
ZipFile zipfile=new ZipFile(file.getInputStream(),Charset.forName("gbk"));
System.out.println(zipfile.getEntry("index.html").getName());