【发布时间】:2011-05-26 10:10:14
【问题描述】:
在许多示例中,描述了您可以使用scala.io.Source 来读取整个文件,如下所示:
val str = scala.io.Source.fromFile("test.txt").mkString()
但是没有提到关闭底层流。
为什么 Scala 不提供方便的方法来做到这一点,例如 Python 中的 with 子句?它看起来很有用,但并不难。
还有其他更好的方法可以在 Scala 中安全地做到这一点,我的意思是读取整个文件吗?
【问题讨论】:
-
以这种方式使用Source而不关闭底层流是否正确?
-
如果你阅读了scala.io.Source的代码,你会发现其实它把关闭底层流的工作交给了你。太棒了!
-
考虑改用:import java.nio.file.{Files, Path, Path} val data = Files.readString(path)