3

ファイル転送コードを次のように記述しました。

val fileContent: Enumerator[Array[Byte]] = Enumerator.fromFile(file)
val size = file.length.toString
file.delete // (1) THE FILE IS TEMPORARY SO SHOULD BE DELETED 
SimpleResult(
 header = ResponseHeader(200, Map(CONTENT_LENGTH -> size, CONTENT_TYPE -> "application/pdf")),
 body = fileContent)

このコードは、ファイル サイズがかなり大きい (2.6 MB) 場合でも正常に動作しますが、.fromFile() についての私の理解は fromCallBack() のラッパーであり、SimpleResult は実際にファイルをバッファリングして読み取るため、混乱していますが、ファイルはその前に削除。

私の簡単な仮定は、チャンクの読み取りが完了した後、ファイルが解放されるまで java.io.File.delete が待機することですが、Java File クラスのそのプロセスについて聞いたことがありません。インスタンスですが、それは fromCallBack() 仕様に反していると思います。

このメカニズムについて知っている人はいますか?

4

1 に答える 1