它过去曾经可以工作,但是我中间没有发生什么,现在它总是返回null
。
要读取的文件位于项目root diretory中,该项目与Paths.get(".")
的输出相对应。
注意:函数是顶级
我正在读取imgui.ini
文件here
fileLoadToLines(iniFilename)
fun fileLoadToLines(filename: String) = ClassLoader.getSystemResourceAsStream(filename)?.use { it.bufferedReader().readLines() }
也尝试了其他Thread.currentThread().contextClassLoader
,没有成功
出什么问题了?
答案 0 :(得分:1)
项目根目录通常是默认的当前工作目录,但不一定位于类路径上。这就是为什么Paths.get(".")
返回它,而类加载器找不到它下面的文件的原因,因为后者是通过类路径中的内容来进行的。
它曾经起作用,可能是因为您已将项目根目录添加到运行时类路径中。我建议的解决方案是不使用类加载器,而仅使用java.io中的文件系统API来加载它。