加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用scala在classpath下读取属性文件

发布时间:2020-12-16 19:19:46 所属栏目:安全 来源:网络整理
导读:我试图使用 scala从classpath读取属性文件.但它看起来不起作用,它与 java不同.以下2个代码片段,一个是java(工作),另一个是scala(不工作).我不明白有什么区别. // workingBufferedReader reader = new BufferedReader(new InputStreamReader(Test.class.getRe
我试图使用 scala从classpath读取属性文件.但它看起来不起作用,它与 java不同.以下2个代码片段,一个是java(工作),另一个是scala(不工作).我不明白有什么区别.

// working
BufferedReader reader = new BufferedReader(new InputStreamReader(
Test.class.getResourceAsStream("conf/fp.properties")));

// not working 
val reader = new BufferedReader(new InputStreamReader(
getClass.getResourceAsStream("conf/fp.properties")));

Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
at com.ebay.searchscience.searchmetrics.fp.conf.FPConf$.main(FPConf.scala:31)
at com.ebay.searchscience.searchmetrics.fp.conf.FPConf.main(FPConf.scala)

解决方法

我猜你的BufferedReader是一个java.io.BufferedReader

在这种情况下,您可以简单地执行以下操作:

import scala.io.Source.fromUrl
val reader = fromURL(getClass.getResource("conf/fp.properties")).bufferedReader()

但是,这样就可以解决您之后计划与读者做些什么的问题. scala.io.Source已经有一些有用的方法可能会使你的许多代码变得多余.. see ScalaDoc

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读