Java 系统找不到Kotlin中指定的文件

Java 系统找不到Kotlin中指定的文件,java,file,kotlin,Java,File,Kotlin,我试图读取同一个包中的文件,所以当我运行代码时,它会给我错误 var buffer: BufferedReader? = null val result = try { buffer = BufferedReader(FileReader("file.txt")) val chars = CharArray(30) buffer.read(chars, 0, 40) 0 } catch (e: IndexOutOfBoundsException) {

我试图读取同一个包中的文件,所以当我运行代码时,它会给我错误

var buffer: BufferedReader? = null

val result = try {

    buffer = BufferedReader(FileReader("file.txt"))
    val chars = CharArray(30)
    buffer.read(chars, 0, 40)
    0
} catch (e: IndexOutOfBoundsException) {
    println(" Exception handle")
    1
} catch(e: FileNotFoundException) {
    println(e.message)
    2
} finally {
    buffer?.close()
    println("closed")
}

println(result)
输出:

file.txt(系统找不到指定的文件)

封闭的

二,

当我指定完整路径
FileNoFoundException
不抛出为什么

var buffer: BufferedReader? = null

val result = try {
    buffer = BufferedReader(FileReader("C:\\Users\\Mahmood Ali\\IdeaProjects\\Kotlin wih hadi\\src\\tidbits\\file.txt"))
    val chars = CharArray(30)
    buffer.read(chars, 0, 40)
    0
} catch (e: IndexOutOfBoundsException) {
    println("Exception handle")
    1
} catch(e: FileNotFoundException) {
    println(e.message)
    2
} finally {
    buffer?.close()
    println("closed")
}

println(result)
输出:

异常句柄

封闭的


1

如果传递的文件名没有路径,JVM将在当前工作目录中查找该文件,而不是从中进行调用的类的包文件夹。因此,要使用相对路径,首先必须找到程序的工作目录,如果从intelliJ运行,它通常应该是项目的根文件夹。

如果传递的文件名没有路径,JVM将在当前工作目录中查找该文件,而不是您正在进行调用的类的包文件夹。因此,要使用相对路径,您必须首先找到程序的工作目录,如果您从intelliJ运行它,它通常应该是项目的根文件夹