从Scala中的目录中读取文件

时间:2011-12-24 02:50:28

标签: scala

如何在Scala中的目录中获取文件列表(或所有* .txt文件)。 Source类似乎没有帮助。

4 个答案:

答案 0 :(得分:49)

new java.io.File(dirName).listFiles.filter(_.getName.endsWith(".txt"))

答案 1 :(得分:15)

Java File类实际上是您所需要的,尽管可以更轻松地为目录上的迭代添加一些Scala优点。

import scala.collection.JavaConversions._

for(file <- myDirectory.listFiles if file.getName endsWith ".txt"){
   // process the file
}

答案 2 :(得分:15)

使用新DirectoryStream类的JDK7版本是:

import java.nio.file.{Files, Path}
Files.newDirectoryStream(path)
    .filter(_.getFileName.toString.endsWith(".txt"))
    .map(_.toAbsolutePath)

这不是一个字符串,而是返回一个Path,它上面有大量方便的方法,比如&#39; relativize&#39;和&#39;子路径&#39;。

请注意,您还需要导入import scala.collection.JavaConversions._以启用与Java集合的互操作。

答案 3 :(得分:2)

目前,您应该使用Java库来执行此操作。