Как прочитать файл из classpath без внешних зависимостей? - PullRequest
30 голосов
/ 25 мая 2011

Есть ли в Scala однострочник для чтения файла из classpath без использования внешних зависимостей, например, Обще-ю?

IOUtils.toString(getClass.getClassLoader.getResourceAsStream("file.xml"), "UTF-8")

Ответы [ 3 ]

59 голосов
/ 25 мая 2011
val text = io.Source.fromInputStream(getClass.getResourceAsStream("file.xml")).mkString
6 голосов
/ 10 февраля 2017

Если файл находится в папке ресурсов (тогда он будет в корне пути к классам), вы должны использовать класс 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")
0 голосов
/ 15 февраля 2013

В Читать весь файл в Scala? @ daniel-spiewak предложил несколько иной подход, который лично мне нравится больше, чем ответ @ dacwe.

// scala is imported implicitly
import io.Source._

val content = fromInputStream(getClass.getResourceAsStream("file.xml")).mkString

Однако мне интересно, илине все ли еще однострочно?

...