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

时间:2017-07-07 11:40:47

标签: 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) {
    println(" Exception handle")
    1
} catch(e: FileNotFoundException) {
    println(e.message)
    2
} finally {
    buffer?.close()
    println("closed")
}

println(result)

输出

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

关闭

2

当我指定完整路径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

1 个答案:

答案 0 :(得分:1)

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