val text = io.Source.fromInputStream(getClass.getResourceAsStream("file.xml")).mkString
Если вы хотите, чтобы файл был закрыт:
val source = io.Source.fromInputStream(getClass.getResourceAsStream("file.xml"))
val text = try source.mkString finally source.close()
Ответ 2
Если файл находится в папке ресурса (тогда он будет находиться в корневом пути класса), вы должны использовать класс Loader, который находится в корне пути класса.
Это строка кода, если вы хотите получить контент (в scala 2.11):
val content: String = scala.io.Source.fromInputStream(getClass.getClassLoader.getResourceAsStream("file.xml")).mkString
В других версиях Scala исходный класс может быть в другом пути к классам
Если вы хотите получить ресурс:
val resource = getClass.getClassLoader.getResource("file.xml")
Ответ 3
В Прочитайте весь файл в Scala? @daniel-spiewak предложил немного другой подход, который мне лично нравится лучше, чем ответ @dacwe.
// scala is imported implicitly
import io.Source._
val content = fromInputStream(getClass.getResourceAsStream("file.xml")).mkString
Как бы мне ни было интересно, остается ли он еще одним лайнером?