我尝试从同一个包中的文件读取,所以当我运行代码时,它会给我错误
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
答案 0 :(得分:1)
如果您传递的文件名没有路径,JVM将在当前工作目录中查找该文件,而不是您正在进行调用的类的包文件夹。因此,要使用相对路径,您必须首先找到程序的工作目录,如果您从intelliJ运行它,它通常应该是项目的根文件夹。