ダウンロードされたファイルを削除したい


JAX-RSを使って、ファイルをダウンロードできるWebAPIを作っています。  
このファイルは、ダウンロードが終わったら即時削除したいのですが、その方法が分かりません。

[code]

    @GET
    @Path("download")
    public Response download() {
    
        ...
    
        try (val is = Files.newInputStream(fileInfo.getPath(), StandardOpenOption.DELETE_ON_CLOSE)) {
            val response = Response.ok(is, fileInfo.getMimeType()).encoding("UTF-8")
                    .header("Content-Disposition", contentDisposition(fileInfo)).build();
            return response;
        }
    }
    
[/code]

例えばこのように作ってみると、`ClosedChannelException`が発生してしまいます。  
恐らく、このメソッド（というかtry句）を抜けた時点でcloseされ、ファイルが削除されますので、そのあとJAX-
RSがHTTPクライアントにファイルのバイナリを流そうとして失敗しているのだと思います。

何か良い方法は無いでしょうか？




ダウンロードが完了したことは検知できないので、ファイルサイズが小さければ、ByteArrayInputStreamに変換した後に、ファイルを削除してはいかがでしょうか？

ファイルが作られるタイミングがわかりませんが、そもそもファイルを作らずに、直接ストリームにデータを流す事を考慮した方が良いのではないかと思います。

