如何在Play 2.6.x中将java.io.File转换为Scala临时文件

时间:2018-01-16 06:10:58

标签: scala playframework temporary-files

我在我的项目中有这个代码,在spec2中玩2.5,它工作得很好。 最近我更新了2.6.9,现在它不再起作用了。

val file = new File(s"$home/the.upload.file4.$fileName")
val pw = new PrintWriter(file)
pw.write(fileContent)
pw.close
val tempFile = TemporaryFile(file)

我尝试将其更改为:

val file = new File(s"$home/the.upload.file4.$fileName")
val pw = new PrintWriter(file)
pw.write(fileContent)
pw.close
val tempFile = file.asInstanceOf[TemporaryFile]

它编译但在运行时无法将java.io.file转换为临时文件。错误是:

  

[error] java.lang.ClassCastException:java.io.File无法强制转换为play.api.libs.Files $ TemporaryFile

2 个答案:

答案 0 :(得分:2)

您可以替换

val tempFile = file.asInstanceOf[TemporaryFile]

val tempFile = SingletonTemporaryFileCreator.create(file.toPath)

所以你也可以使用 TemporaryFileCreator , 有关更多信息和其他用途,您可以看到这一点 Interface Files.TemporaryFile

答案 1 :(得分:0)