public static void compresszip (List(File) fileList, Outputstream outputstream)if (nuli--fileList 1)fileList.isEmpty()II null--outputStream)return
Zipoutputstream zipoutputstream null
zipoutputstream new zipoutputstrear w Bufferedoutputstream(outputstream)
zipoutputstream.setMethod(zipEntry.DEFLATED);
for(File file:fileList){
if (Ifile, exists() ll file, isHidden() ll file, isDirectory()) continue;
Inputstream in new FileInputstream(file);
zipoutputstream.putNextEntry(new ZipEntry(f41e.getName());byte[] cache.new byte[1024];
int count ;
while(count-in.read(cache))I--1){
11 详zip输出流对象写入数据
zipoutputstream.write(cache,off:e,count);
in.close();
1/关闭entry流
zipoutputstream.closeEntry();
} catch (FileNotFoundException e) {
e.printstackTrace();
System.out.println("文件未找到异常:"+e.getMessage());
} catch(IOException e){
e-printstackTrace();
System.out.println("读取文件异常:"+e.getMessage());
} finally {
try
if(objects.nonNull(zipoutputstream)){
ZipQutputstream.flush();
zipoutputstream.close();
if(objects,nonNull(outputstream))
outputstream,close();
public static HttpServletResponse setDownloadResponse (HttpServletRequest request, HttpServletResponse response, String downloadione)try {
response.reset();
response.setCharacterEncoding("UTF-8"):
response.setContentType("application/octet-stream");
response.setheader(s"Content-Disposition",sl:"attachment;filename-"+FileUtils.setFileDownLoodHeader(request,downloadilame));return respons
} catch (UnsupportedEncodingException e){
e-printstackTrace();
return null;
public static String setFileDown loadHeader(HttpServletRequest request, String fileName)throws UnsupportedEncodingException(
final String agent - request-getHeader("USER-AGENT");
String filename=fileName;
if(agent.contains("MSIE")){
filename·URLEncoder.encode(filename,"utf-8");
filename=filename.replace("+", "");
}else if(agent.contains("Firefox")){
filename = new String(fileName.getBytes(), "IS08859-1");
}else if(agent.contains("Chrome")){
filename = new String(fileName.getBytes(), "IS08859-1");
}else
filename=new String(fileName.getBytes(),"utf-8");
return filename;