如何从类路径读取文件而没有外部依赖关系?

问题描述

| Scala中是否有一种方法可以从类路径读取文件而无需使用外部依赖项,例如commons-io?
IOUtils.toString(getClass.getClassLoader.getResourceAsStream(\"file.xml\"),\"UTF-8\")
    

解决方法

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()
    ,如果文件位于资源文件夹中(那么它将位于类路径的根目录中),则应该使用Loader类,因为它也位于类路径的根目录中。 如果要获取内容,这是代码行(在scala 2.11中):
val content: String  = scala.io.Source.fromInputStream(getClass.getClassLoader.getResourceAsStream(\"file.xml\")).mkString
在其他版本的Scala中,Source类可以在其他classpath中 如果您只想获取资源:
val resource  = getClass.getClassLoader.getResource(\"file.xml\")
    ,在阅读Scala中的整个文件? @ daniel-spiewak提出了一种不同的方法,我个人喜欢@dacwe的回复。
// scala is imported implicitly
import io.Source._

val content = fromInputStream(getClass.getResourceAsStream(\"file.xml\")).mkString
但是,我想知道它是否仍然是单线的?     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...