在文件夹资源中的Kotlin 项目中,我有属性文件。如何从这个文件读取内容数据到 Properties 对象?
我试试这个:
val fis = FileInputStream("resources/pairs_ids.txt")
prop.load(fis);
logger.info("ETH_BTC_id = " + prop.get("ETH_BTC"))
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
Exception in thread "main" java.io.FileNotFoundException: resources\pairs_ids.txt (The system cannot find the path specified)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我喜欢做的是:
@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")
}
Run Code Online (Sandbox Code Playgroud)
它将读取属性并尝试转换某个属性。由于 kotlins 类型推断,它可以像这样使用:
val foo: String = getProp("ETH_BTC")
Run Code Online (Sandbox Code Playgroud)
或这个:
val foo = getProp<String>("ETH_BTC")
Run Code Online (Sandbox Code Playgroud)
val props = Properties()
props.load(...)
props.getProperty("key")
Run Code Online (Sandbox Code Playgroud)
这与 Java 相同
归档时间: |
|
查看次数: |
3532 次 |
最近记录: |