java在线查看压缩包内容,但不解压压缩包
目前的压缩包的应用中,可以不用解压文件而进行查看压缩包内的文件,而在我们实际的开发中,也需要用到在线查看压缩包里的内容。
废话少说,上代码:
public String onlinLookZip(String file) throws IOException {
//读取压缩包,设置编码格式为GBK格式
ZipFile zipFile = new ZipFile(file,Charset.forName("GBK"));
//将压缩包转化为缓存字节流
InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
//把缓存字节流转化为压缩文件输入流,设置编码格式为GBK格式
ZipInputStream zipInputStream = new ZipInputStream(inputStream,Charset.forName("GBK"));
//定义ZipEntry置为null,避免由于重复调用zipInputStream.getNextEntry造成的不必要的问题
ZipEntry zipEntry;
ArrayList<Object> arrayList = new ArrayList<>();
while ((zipEntry = zipInputStream.getNextEntry()) != null) {
if (zipEntry.isDirectory()) {
} else {
Map resultMap = new HashMap();
resultMap.put("fileName",zipEntry.getName() );
resultMap.put("size",zipEntry.getSize());
arrayList.add(resultMap);
}
}
//关闭流
zipInputStream.closeEntry();
return ResultMap.pubResult(200,arrayList,"在线查看成功");
}
返回值为map数组,可根据实际需要调整返回值