有没有一种很好,安全,快速的方法将输入流写入Scala中的文件?
2022-09-02 02:16:54
具体来说,我正在将文件上传到 Lift Web 应用程序中的本地文件。
具体来说,我正在将文件上传到 Lift Web 应用程序中的本地文件。
在 Java 7 或更高版本中,您可以从新的文件 I/O 中使用:Files
Files.copy(from, to)
其中 和 可以是 s 或 s。这样,您甚至可以使用它来方便地从打包在 jar 中的应用程序中提取资源。from
to
Path
InputStream
如果它是一个文本文件,并且你想将自己限制在Scala和Java上,那么用于读取可能是最快的 - 它不是内置的,但很容易编写:scala.io.Source
def inputToFile(is: java.io.InputStream, f: java.io.File) {
val in = scala.io.Source.fromInputStream(is)
val out = new java.io.PrintWriter(f)
try { in.getLines().foreach(out.println(_)) }
finally { out.close }
}
但是,如果你无论如何都需要其他库,你可以通过使用它们来让你的生活更轻松(正如Michel所说明的那样)。
(P.S.--在 Scala 2.7 中,不应该有一个之后。getLines
()
(P.P.S.--在旧版本的Scala中,没有删除换行符,所以你需要代替.getLines
print
println