/**
* 将字符串写入文本文件并写入压缩包
* @param response response对象
* @param fileName 下载的文件名称 (下载后需要给文件的名称)
* @param response 字符串
* @throws Exception
*/
private void downloadFile(HttpServletResponse response, String fileName, String str) throws Exception {
//设置向浏览器端传送的文件格式
response.setContentType("text/plain");
response.setHeader("Content-disposition", "attachment; filename=" + fileName);
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
ZipOutputStream zip = null;
//将字符串变成输入流
bis = new BufferedInputStream(new ByteArrayInputStream(str.getBytes("utf-8")));
//获取输出流
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[str.getBytes().length];
//zip压缩文件输出流
zip = new ZipOutputStream(bos);
//获取zip压缩文件中的实体(test.txt为压缩文件中的文本文件名称)
ZipEntry entry = new ZipEntry("test.txt");
entry.setSize(str.getBytes().length);
//将实体放入压缩文件流中
zip.putNextEntry(entry);
//写入
int len = 0;
while ((len = bis.read(buff)) != -1) {
zip.write(buff, 0, len);
}
}
/**
* 下载方法
* @param response
* @return
* @throws Exception
*/
@RequestMapping
public String download(HttpServletResponse response) throws Exception {
String str = "测试文本测试文本";
downloadFile(response, "test.zip", str);
return null;
}
将字符串写入txt并压缩到zip包
最新推荐文章于 2024-05-01 20:32:24 发布