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作成ジョブがまだ実行されている間に小さなファイル(破損)がダウンロード(すぐに終了)されます。これら 2 つのジョブを同期するにはどうすればよいですか?