我正在编写一个服务器JAVA
,客户端请求下载多个文件,服务器将创建一个ZipOutputStream
并立即提供服务。另一方面,另一个线程将写入ZipOutputStream
. 我用过piped input/output stream
。
代码
PipedInputStream in = new PipedInputStream();
PipedOutputStream out = new PipedOutputStream();
in.connect(out);
ZipOutputStream zout = new ZipOutputStream(out);
new Thread{
public void run(){
while(condition){
more logic..
zout.write(data,0,length);
zout.flush()
}
zout.close();
out.close();
}
}.start();
return in;
但是当我单击下载按钮时,它会下载(立即完成)一个小文件(损坏),而我的 zip 创建作业仍在运行。我怎样才能同步这两个工作?