我尝试通过NanoHTTPD
创建一个zip文件这就是我现在所拥有的:
@Override
public Response serve(IHTTPSession session) {
String uri = session.getUri();
if (uri.toString().equals("/test.zip")) {
try {
PipedOutputStream outPipe = new PipedOutputStream();
ZipEncryptOutputStream zeos = new ZipEncryptOutputStream(outPipe, "Foo");
ZipOutputStream zos = new ZipOutputStream(zeos);
File file = new File("Test.txt");
PipedInputStream inPipe = new PipedInputStream(outPipe, 2048);
ZipEntry ze = new ZipEntry("Test.txt");
zos.putNextEntry(ze);
FileInputStream fis = new FileInputStream(file);
IOUtils.copy(fis, zos);
fis.close();
zos.closeEntry();
zos.close();
return newChunkedResponse(Response.Status.OK, "application/zip", inPipe);
但是当调试时 - 当然 - 需要一些时间,因为所有内容都先保存到ZIP文件中。
我想我必须以某种方式在回调中以及在病房关闭条目和流之后写入zos
?但是怎么样?
这是一种有效的方式吗(我的目标是Android)?创建临时文件会更容易 - 但它应该适用于低端智能手机,并且下载时创建zip文件(大约40 MB)的初始等待时间应该很短。