Подтвердить что ты не робот

Как читать файл из пути к классам без внешних зависимостей?

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

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

Ответ 1

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

Как бы мне ни было интересно, остается ли он еще одним лайнером?