看看
Apache Commons Compress库,它提供了您需要的功能.
当然,“erickson”对你的问题发表评论是正确的.您将需要文件内容而不是java.io.File对象.在我的例子中,我假设你有一个方法
byte [] getTheContentFormSomewhere(int fileNummer),它返回fileNummer-th文件的文件内容(在内存中). – 当然这个功能设计很差,但它仅用于说明.
它应该有点像这样:
void compress(final OutputStream out) {
ZipOutputStream zipOutputStream = new ZipOutputStream(out);
zipOutputStream.setLevel(ZipOutputStream.STORED);
for(int i = 0; i < 10; i++) {
//of course you need the file content of the i-th file
byte[] oneFileContent = getTheContentFormSomewhere(i);
addOneFileToZipArchive(zipOutputStream, "file"+i+"."txt", oneFileContent);
}
zipOutputStream.close();
}
void addOneFileToZipArchive(final ZipOutputStream zipStream,
String fileName,
byte[] content) {
ZipArch