Kotlin同路径文件无法读取问题求助(Ubuntu环境)
Kotlin文件读取提示“文件不存在”的解决办法
问题核心原因
IntelliJ运行Kotlin程序时,默认的工作目录是项目根目录,不是你存放main.kt的src/main/kotlin目录。直接写File("Kotlin2.txt")时,程序会去项目根目录查找文件,自然找不到目标文件。
具体解决方案
方案1:移动文件到项目根目录
把Kotlin2.txt直接放到项目最外层根目录(和src文件夹同级),现有代码无需修改即可正常读取。
方案2:修改代码使用完整相对路径
如果不想移动文件,将代码中的文件名替换为从项目根目录到文件的相对路径:
// 修改第一个函数的调用参数 readFileLineByLineUsingEachLine("src/main/kotlin/Kotlin2.txt") // 修改第二个读取代码 val inputStream: InputStream = File("src/main/kotlin/Kotlin2.txt").inputStream() val inputString = inputStream.reader().use { it.readText() } println(inputString)
方案3:用资源文件规范读取(推荐)
如果该文件属于程序资源,更规范的做法是将其放入src/main/resources目录(无此目录可自行创建),然后通过类加载器读取:
// 读取资源文件 val inputStream = javaClass.classLoader.getResourceAsStream("Kotlin2.txt") val inputString = inputStream?.reader()?.use { it.readText() } ?: "文件未找到" println(inputString)
这种方式无需关注路径细节,程序打包后也能正常读取资源。
Ubuntu下的实用技巧
- 终端进入项目目录后,用
ls命令查看文件位置,pwd命令确认当前所在目录。 - 若需临时修改IntelliJ运行工作目录:打开
Run -> Edit Configurations,找到对应运行配置,在Working directory中设置为$PROJECT_DIR$/src/main/kotlin,但不推荐长期使用,遵循资源文件规范更稳妥。
内容的提问来源于stack exchange,提问作者cris318
相关产品推荐
相关产品推荐

