Система не может найти файл, указанный в 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

Если вы передадите имя файла без пути, JVM будет искать этот файл в текущем рабочем каталоге , а не в папке пакета класса, с которого вы звоните. Таким образом, для использования относительных путей вам нужно сначала узнать рабочий каталог вашей программы, который обычно должен быть корневой папкой проекта, если вы используете его из intelliJ.