You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:46:30