Middle
108
0
questionbank

Как работать с файлами и потоками ввода-вывода (I/O) в Kotlin?

Ответ от нейросети sobes.tech

В Kotlin стандартная библиотека предоставляет удобные расширения для работы с I/O, упрощая взаимодействие с java.io.

Основные подходы и классы:

  • Чтение из файла:

    • File.readBytes(): Читает содержимое файла в массив байт.
    • File.readText(): Читает содержимое файла как строку (с учетом кодировки).
    • File.forEachLine { ... }: Обрабатывает каждую строку файла.
    • File.bufferedReader(): Создает BufferedReader для построчного чтения.
    • File.inputStream(): Создает InputStream для чтения байтов.
  • Запись в файл:

    • File.writeBytes(bytes): Записывает массив байт в файл.
    • File.writeText(text, append): Записывает строку в файл. append = true для добавления в конец.
    • File.printWriter(): Создает PrintWriter для удобной записи форматированного текста.
    • File.outputStream(): Создает OutputStream для записи байтов.
  • Работа с потоками:

    • InputStream.bufferedReader(): Обертывает InputStream в BufferedReader.
    • OutputStream.printWriter(): Обертывает OutputStream в PrintWriter.
    • Функции расширения типа copyTo(outputStream) для копирования содержимого потоков.
  • Обработка ресурсов (closures):

    • Функции расширения use { ... } для автоматического закрытия потоков и ридеров/врайтеров, даже в случае исключений.
kotlin

В Kotlin стандартная библиотека предоставляет удобные расширения для работы с I/O, упрощая взаимодействие с java.io.

Основные подходы и классы:

  • Чтение из файла:

    • File.readBytes(): Читает содержимое файла в массив байт.
    • File.readText(): Читает содержимое файла как строку (с учетом кодировки).
    • File.forEachLine { ... }: Обрабатывает каждую строку файла.
    • File.bufferedReader(): Создает BufferedReader для построчного чтения.
    • File.inputStream(): Создает InputStream для чтения байтов.
  • Запись в файл:

    • File.writeBytes(bytes): Записывает массив байт в файл.
    • File.writeText(text, append): Записывает строку в файл. append = true для добавления в конец.
    • File.printWriter(): Создает PrintWriter для удобной записи форматированного текста.
    • File.outputStream(): Создает OutputStream для записи байтов.
  • Работа с потоками:

    • InputStream.bufferedReader(): Обертывает InputStream в BufferedReader.
    • OutputStream.printWriter(): Обертывает OutputStream в PrintWriter.
    • Функции расширения типа copyTo(outputStream) для копирования содержимого потоков.
  • Обработка ресурсов (closures):

    • Функции расширения use { ... } для автоматического закрытия потоков и ридеров/врайтеров, даже в случае исключений.
kotlin

Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.