НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
589 of 1310 menu

Функция readBytes

Функция readBytes читает все содержимое файла и возвращает его в виде массива байтов типа ByteArray. Эта функция удобна для работы с бинарными файлами, такими как изображения, исполняемые файлы и другие не текстовые данные.

Импорт

import java.io.File

Синтаксис

fun File.readBytes(): ByteArray

Пример

Прочитаем содержимое файла data.bin в массив байтов:

val file = File("data.bin") val bytes: ByteArray = file.readBytes() println("File size: " + bytes.size + " bytes")

Результат выполнения кода:

File size: 1024 bytes

Пример

Прочитаем содержимое файла и преобразуем байты в шестнадцатеричную строку:

val file = File("data.bin") val bytes = file.readBytes() val hexString = bytes.joinToString("") { "%02x".format(it) } println("Hex content: " + hexString)

Результат выполнения кода:

Hex content: 48656c6c6f20576f726c64

Пример

Обработаем возможное исключение при чтении файла:

try { val file = File("nonexistent.bin") val bytes = file.readBytes() println("Read " + bytes.size + " bytes") } catch (e: Exception) { println("Error reading file: " + e.message) }

Результат выполнения кода:

Error reading file: nonexistent.bin (No such file or directory)

Пример

Сравним содержимое двух файлов побайтово:

val file1 = File("file1.bin") val file2 = File("file2.bin") val bytes1 = file1.readBytes() val bytes2 = file2.readBytes() val areEqual = bytes1.contentEquals(bytes2) println("Files are identical: " + areEqual)

Результат выполнения кода:

Files are identical: true

Примечания

Функция readBytes загружает весь файл в память, поэтому для очень больших файлов рекомендуется использовать потоковое чтение с помощью inputStream или bufferedReader.

При чтении файла может возникнуть исключение IOException, если файл не существует, недоступен для чтения или произошла другая ошибка ввода-вывода.

Смотрите также

  • функцию readText,
    которая читает файл как текст
  • функцию writeBytes,
    которая записывает массив байтов в файл
  • функцию inputStream,
    которая предоставляет потоковый доступ к файлу
  • класс File,
    который представляет файл или директорию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить