web-dev-qa-db-fra.com

Comment lire un fichier de classePath sans dépendances externes?

Existe-t-il une doublure en Scala= pour lire un fichier de ClassPath sans utiliser des dépendances externes, E.G. Commons-io?

IOUtils.toString(getClass.getClassLoader.getResourceAsStream("file.xml"), "UTF-8")
31
mbdev
val text = io.Source.fromInputStream(getClass.getResourceAsStream("file.xml")).mkString

Si vous souhaitez vous assurer que le fichier est fermé:

val source = io.Source.fromInputStream(getClass.getResourceAsStream("file.xml"))
val text = try source.mkString finally source.close()
60
dacwe

Si le fichier est dans le dossier de ressources (il sera ensuite à la racine du chemin de classe), vous devez utiliser la classe du chargeur qu'il est trop à la racine du chemin de classe.

Ceci est la ligne de code si vous voulez obtenir le contenu (IN scala 2.11):

val content: String  = scala.io.Source.fromInputStream(getClass.getClassLoader.getResourceAsStream("file.xml")).mkString

Dans d'autres versions de Scala, la classe source pourrait être dans une autre classe de classe

Si vous voulez seulement obtenir la ressource:

val resource  = getClass.getClassLoader.getResource("file.xml")
6
fhuertas

Dans Lire fichier entier à Scala? @ daniel-Spiewak a proposé un peu différente approche que je préfère personnellement mieux que la réponse du @ dacwe.

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

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

Cependant, je me demande si c'est ou non une doublure?

0
Jacek Laskowski