Я написал файл перенося код следующим образом:Почему этот код успешно работает с Enumerator.fromFile?
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, Или .fromFile() уже загружен все строки в экземпляре Enumerator, но это противоречит спецификации fromCallBack(), я думаю.
Кто-нибудь знает об этом механизме?