我正在阅读“Scala for the greatient”(第二版),我一直在讨论如何访问目录(第9.7节)。
我想按顺序打开目录中的所有文件(不包括该目录中的文件夹;这些文件是文本文件)。 书中提供的示例并不简单,因为它没有解释如何处理路径对象(java.nio.file.Path)
以下是本书中的示例(略有修改):
import java.nio.file._
val dirname: String = "./9_files_and_regular_expressions"
val entries = Files.list(Paths.get(dirname))
entries.toArray // print all the file names and consume the iterator...
val entries = Files.list(Paths.get(dirname))
try {
entries.forEach(p => process the path p)
} finally {
entries.close()
}
而不是“处理路径p”,我想打开相关目录......我在这里看到了文档https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html,但是这个包看起来很低......我是否需要转换一个首先是文件路径,然后处理这个文件对象?
有没有更简单的方法在Scala中执行这个简单的任务(目录的打开文本文件)?
答案 0 :(得分:0)
您可以阅读目录并过滤其中的所有目录,并通过打开它来处理每个文件。下面是简单的例子
val dirname: String = "/path"
val files = new File(dirname)
files.listFiles().filter( !_.isDirectory).map{
file => process the file
}
希望这有帮助!