java怎么移动zip包,求:關於java怎么把許多附件打成zip壓縮包

java Zip壓縮文件:

import java.util.*;

import java.util.zip.*;

import java.io.*;

class TestZip

{

//壓縮

public static void zip(String zipFileName , String inputFile)throws Exception

{

File f = new File(inputFile);

ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));

zip(out,f,null);

System.out.println("zip done");

out.close();

}

private static void zip(ZipOutputStream out,File f,String base)throws Exception

{

System.out.println("zipping " + f.getAbsolutePath());

if (f.isDirectory()) {

File[] fc =f.listFiles();

if(base!=null)

out.putNextEntry(new ZipEntry(base+"/"));

base=base==null?"":base+"/";

for (int i=0;i

zip(out,fc[i],base+fc[i].getName());

}

}

else {

out.putNextEntry(new ZipEntry(base));

FileInputStream in=new FileInputStream(f);

int b;

while ((b=in.read()) != -1)

out.write(b);

in.close();

}

}

//解壓

public static void unzip(String zipFileName,String outputDirectory)throws Exception

{

ZipInputStream in=new ZipInputStream(new FileInputStream(zipFileName));

ZipEntry z;

while ((z=in.getNextEntry() )!= null)

{

String name = z.getName();

if (z.isDirectory()) {

name=name.substring(0,name.length()-1);

File f=new File(outputDirectory+File.separator+name);

f.mkdir();

System.out.println("MD "+outputDirectory+File.separator+name);

}

else {

System.out.println("unziping "+z.getName());

File f=new File(outputDirectory+File.separator+name);

f.createNewFile();

FileOutputStream out=new FileOutputStream(f);

int b;

while ((b=in.read()) != -1)

out.write(b);

out.close();

}

}

in.close();

}

public static void main(String[] args)

{

try{

TestZip t=new TestZip();

//  t.zip("c:\\test.zip","c:\\test");

//   t.unzip("c:\\test.zip","c:\\test2");

}catch(Exception e){

e.printStackTrace(System.out);

}

}

}

僅供參考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Java中的ZipOutputStream类来实现将多个附件Zip文件并返回给前端。以下是一个简单的代码示例: ```java import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ZipServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取要打文件列表 String[] fileNames = request.getParameterValues("fileNames[]"); try { // 设置响应头 response.setContentType("application/zip"); response.setHeader("Content-Disposition", "attachment; filename=\"archive.zip\""); // 创建ZipOutputStream ServletOutputStream out = response.getOutputStream(); ZipOutputStream zipOut = new ZipOutputStream(out); // 添加文件ZipOutputStream for (String fileName : fileNames) { File file = new File(fileName); FileInputStream in = new FileInputStream(file); ZipEntry zipEntry = new ZipEntry(file.getName()); zipOut.putNextEntry(zipEntry); byte[] buffer = new byte[1024]; int len; while ((len = in.read(buffer)) > 0) { zipOut.write(buffer, 0, len); } in.close(); zipOut.closeEntry(); } // 关闭ZipOutputStream zipOut.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在这个代码示例中,我们首先从请中获取要打文件列表,然后设置响应头以告诉浏览器返回的是一个Zip文件,并将ZipOutputStream对象的输出流设置为响应的输出流。接着,我们遍历文件列表,将每个文件添加到ZipOutputStream中。最后,我们关闭ZipOutputStream以确保Zip文件正确地生成并返回给前端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值