如何解决如何从类路径读取文件而没有外部依赖关系?
| 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
但是,我想知道它是否仍然是单线的?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。