一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java壓縮多個文件并且返回流示例

java壓縮多個文件并且返回流示例

2019-11-14 15:46java教程網 JAVA教程

這篇文章主要介紹了java壓縮多個文件并且返回流示例,返回壓縮流主是為了在程序里再做其它操作,需要的朋友可以參考下

這個類可以壓縮多個文件并且返回流,在程序中可以再操作返回的流做其它功能,比如驗證MD5,下面看代碼吧
 

復制代碼代碼如下:


/**
* 方法描述:<b>測試類</b></br>
*/
public class TestFileStream{
 //文件和壓縮包存儲的位置
StringtempFilePath="C:/temp/"
List<String>fileList=newArrayList<String>();
fileList.add(tempFilePath+"file1.txt");
fileList.add(tempFilePath+"file2.png");
fileList.add(tempFilePath+"file3.xls");
//生成的壓縮包名稱
StringzipName="fileData";
//返回流
ByteArrayOutputStreamoutputStream=fileToZip(fileList,fileData,tempFilePath);
//頁面輸入壓縮包流
byte[]buffer=outputStream.toByteArray();
//清空response
response.reset();
//設置response的Header
response.addHeader("Content-Disposition",
"attachment;filename="+
newString(("dataFile.zip").getBytes("gb2312"),"ISO8859-1"));
response.addHeader("Content-Length",""+outputStream.size());
toClient=newBufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
}

 

/**
*方法描述:<b>將多個文件壓縮成zip包</b></br>
*/
publicByteArrayOutputStreamfileToZip(List<String>fileList,StringzipName,StringtempFilePath){
byte[]buffer=newbyte[1024];
ZipOutputStreamout=null;
try{
out=newZipOutputStream(newFileOutputStream(tempFilePath+zipName+".zip"));
List<File>filedata=newArrayList<File>();
for(inti=0,len=fileList.size();i<len;i++)
{
filedata.add(newFile(fileList.get(i)));
}

for(intj=0,len=filedata.size();j<len;j++)
{
FileInputStreamfis=newFileInputStream(filedata.get(j));
out.putNextEntry(newZipEntry(filedata.get(j).getName()));
intdataLen;
//讀入需要下載的文件的內容,打包到zip文件
while((dataLen=fis.read(buffer))>0){
out.write(buffer,0,dataLen);

}
out.closeEntry();
fis.close();

}
out.close();
}
catch(Exceptionex)
{
ex.printStackTrace();
}
//讀取壓縮包
Filefilezip=newFile(tempFilePath+zipName+".zip");

ByteArrayOutputStreambaos=null;
try
{
baos=newByteArrayOutputStream();
FileInputStreaminStream=newFileInputStream(filezip);
BufferedInputStreambis=newBufferedInputStream(inStream);
intc=bis.read();
while(c!=-1){
baos.write(c);
c=bis.read();
}
bis.close();
inStream.close();
}
catch(Exceptionex)
{
ex.printStackTrace();
}
returnbaos;
}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲天堂男人网 | 爆操萝莉 | 国产精品资源在线观看网站 | 亚洲狠狠婷婷综合久久久久网站 | 欧美一级xxxx俄罗斯一级 | 日本精品中文字幕在线播放 | 香蕉tv亚洲专区在线观看 | 我被黑人彻底征服的全文 | 天选之王漫画顾长歌免费阅读 | 给我视频免费看 | 欧美成人在线影院 | 日韩欧美综合在线二区三区 | 5g影院天天5g天天爽大陆 | 国产二区视频在线观看 | 日本五十路六十30人8时间 | heyzo1754北岛玲在线视频 | 麻豆性视频 | 五月桃花网婷婷亚洲综合 | 欧美a级v片不卡在线观看 | 国产精品久久久久久吹潮 | 国产成人综合亚洲亚洲欧美 | 久久热在线视频精品店 | 男同gay玩奴男同玩奴 | 91香蕉国产在线观看免费永久 | 女性全身裸露无遮挡 | 日本成熟bbxxxxxxxx | 亚洲青草视频 | 毛片 ftp| а天堂中文最新版在线官网视频 | 免费我看视频在线观看 | 青草国内精品视频在线观看 | 免费黄色小说 | 午夜无码片在线观看影院 | 成人网18免费网站 | 波多野 在线 | 色久网 | 手机在线观看网站免费视频 | 国产绿帽 | 亚洲免费视频在线观看 | 国产欧美日韩成人 | 波多野结衣同性系列698 |