Система не может найти файл, указанный в 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
Быстрый способ инициализации дочернего класса Kotlin с свойствами экземпляра родительского класса Целевые аннотации с использованием сайта недоступны с отражением Котлина Как получить общий класс параметров в Котлине Соглашение об именовании котинов для логических методов возврата Устаревшее предупреждение Kotlin Runtime в Android Studio Kotlin mutableMap.put возвращает значение nullable Не поставлять достаточное количество данных в HAL, ожидаемое положение Есть ли какая-либо функция репликации в Котлине? Android – Trigger MainActivity, чтобы сделать что-то из пользовательского вида Преобразовать ByteArrayOutputStream в json в Котлин Вызов countDownTimer Как издеваться над одним и тем же методом несколько раз, используя mockito Как использовать Kotlin в проектах AppEngine с использованием Gradle Как использовать @DbEnumValue с Ebean в Котлине? Okhttp3-запрос, возвращающий пустой ответ, а также разные заголовки, чем Postman