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")
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()
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")
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?