Чтение файлов из каталога в Scala - PullRequest
29 голосов
/ 24 декабря 2011

Как получить список файлов (или всех * .txt файлов, например) в каталоге в Scala.Класс Source, похоже, не помогает.

Ответы [ 4 ]

49 голосов
/ 24 декабря 2011
new java.io.File(dirName).listFiles.filter(_.getName.endsWith(".txt"))
15 голосов
/ 28 марта 2014

Версия JDK7, использующая новый класс DirectoryStream:

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

Вместо строки возвращается путь, в котором есть множество удобных методов, таких как 'reltivize' и 'subpath'.

Обратите внимание, что вам также необходимо импортировать import scala.collection.JavaConversions._, чтобы включить взаимодействие с коллекциями Java.

15 голосов
/ 24 декабря 2011

Класс Java File - это действительно все, что вам нужно, хотя достаточно легко добавить некоторые преимущества Scala к итерации по каталогам.

import scala.collection.JavaConversions._

for(file <- myDirectory.listFiles if file.getName endsWith ".txt"){
   // process the file
}
2 голосов
/ 24 декабря 2011

На данный момент вы должны использовать библиотеки Java для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...