kotlin - 如何将内容数据从属性文件读取到属性对象?
问题描述
在文件夹资源中的 Kotlin 项目中,我有属性文件。如何从该文件中读取内容数据到 Properties 对象?
我试试这个:
val fis = FileInputStream("resources/pairs_ids.txt")
prop.load(fis);
logger.info("ETH_BTC_id = " + prop.get("ETH_BTC"))
但我得到错误:
Exception in thread "main" java.io.FileNotFoundException: resources\pairs_ids.txt (The system cannot find the path specified)
解决方案
在这种情况下,我喜欢做的是:
@Suppress("UNCHECKED_CAST")
fun <T> getProp(key: String): T {
val props = javaClass.classLoader.getResourceAsStream("pairs_ids.txt").use {
Properties().apply { load(it) }
}
return (props.getProperty(key) as T) ?: throw RuntimeException("could not find property $key")
}
它将读取属性并尝试强制转换某个属性。由于 kotlins 类型推断,它可以像这样使用:
val foo: String = getProp("ETH_BTC")
或这个:
val foo = getProp<String>("ETH_BTC")
推荐阅读
- javascript - 如何将 JSON 转义字符串转换为纯 HTML 兼容字符串
- c++ - 从数组中删除元素的函数不起作用
- go - 在互联网接口上收听时有没有办法丢弃数据包?
- c++ - 总和大于 K 的最大长度子数组
- android - 返回true和返回超类有区别吗?在 setOnTouchListener() 等方法中
- reactjs - 反应路由器内容没有改变
- mysql - 提高仅增长表的计数记录性能(不删除)
- delphi - 如何防止 TIdTcpServer 泛滥和连接卡住
- reactjs - 使用 nextjs 正确链接引导导航栏
- saprfc - 当需要消息服务器和端口时,如何在 7.50+ 中从 VBA 连接到 SAP