Kelas ini dapat mengompres banyak file dan mengembalikan aliran.
Salinan kode adalah sebagai berikut:
/**
* Deskripsi metode: <b> kelas tes </b> </br>
*/
TestFileStream kelas publik {
// Lokasi penyimpanan file dan paket terkompresi
StringTempFilePath = "C:/Temp/"
Daftar <String> FileList = newArrayList <String> ();
filelist.add (tempfilePath+"file1.txt");
filelist.add (tempfilePath+"file2.png");
filelist.add (tempfilePath+"file3.xls");
// Nama paket terkompresi yang dihasilkan
StringZipName = "FileData";
// kembali ke aliran
BytearrayoutputStreamoutputStream = filetozip (FileList, FileData, tempfilePath);
// halaman input aliran paket terkompresi
byte [] buffer = outputStream.tobyteArray ();
// Bersihkan respons
response.reset ();
// Atur header respons
response.addheader ("konten-disposisi",
"Lampiran; nama file ="+
Newstring (("Datafile.zip"). GetBytes ("GB2312"), "ISO8859-1"));
response.addheader ("length-length", ""+outputStream.size ());
TOCLIENT = newBufferedOutputStream (response.getoutputStream ());
response.setContentType ("Application/Octet-stream");
toclient.write (buffer);
toclient.flush ();
}
/**
*Deskripsi metode: <b> mengompres beberapa file ke dalam paket zip </b> </br>
*/
PublicByTeArrayOutputStreamFiletoZip (Daftar <String> FileList, StringZipName, StringTempFilePath) {
byte [] buffer = newByte [1024];
ZipoutputStreamout = null;
mencoba{
out = newzipoutputStream (newFileOutputStream (tempfilePath+zipname+". zip"));
Daftar <FILE> FileData = newArrayList <FILE> ();
untuk (inti = 0, len = filelist.size (); i <len; i ++)
{
filedata.add (newfile (filelist.get (i)));
}
untuk (intj = 0, len = filedata.size (); j <len; j ++)
{
FileInputStreamFis = newFileInputStream (filedata.get (j));
out.putNextEntry (newzipEntry (filedata.get (j) .getName ()));
intdatalen;
// Baca konten file yang perlu Anda unduh dan mengemasnya ke dalam file zip
while ((datalen = fis.read (buffer))> 0) {
out.write (buffer, 0, datalen);
}
out.closeentry ();
fis.close ();
}
out.close ();
}
Catch (Exceptionex)
{
Ex.PrintStackTrace ();
}
// Baca paket terkompresi
FileFileZip = newFile (tempfilePath+zipname+". Zip");
BytearrayoutputStreamBaos = null;
mencoba
{
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;
}