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

Intereting Posts
AssertionError: пакет корней должен быть инициализирован java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: невозможно слить dex Как правильно настроить плагин Kotlin для Gradle? Когда можно опустить возвращаемый тип в Котлин Android Kotlin Task debug не найден в корневом проекте Как суммировать несколько элементов после группировки в Котлине Функция инициализации массива Котлина Параметр принудительного типа должен быть инвариантным на сайте-участнике, когда он является ковариантным на сайте объявления Что такое семантика инициализации класса Kotlin? JavaFX Сброс графического контекста Как назвать assertEquals с Double Epsilon / Precision в Котлине? Как вводить примитивные переменные в Котлин? Kotlin – эквивалентность SomeClass.class для объектов? Kotlin: Как я могу вызвать лямбда-поле, которое имеет общий тип его класса? Почему мои проекты IDEA не будут построены?