JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Як мислити байтами й навіщо потрібен ByteArray

    Kotlin SELF
    43 рівень, 0 лекція
    Лекція про «зсув мислення» в I/O: файл — це насамперед байти, а текст — лише інтерпретація. Розбираємо, коли не підходить readText() і чому для бінарних даних потрібен ByteArray, як улаштований тип Byte (діапазон - 128 .. 127), навіщо потрібен буфер і чому масиви порівнюють через contentEquals, а не оператором ==. А ще — місток між світами String і байтів через encodeToByteArray()/ decodeToString().
    Відкрита
  • Робота з байтами: readBytes() / writeBytes()

    Kotlin SELF
    43 рівень, 1 лекція
    Розбираємо найкоротший шлях «прочитав файл → записав файл» для бінарних даних у Kotlin/JVM: функції-розширення File.readBytes() і File.writeBytes(bytes), роботу з типом ByteArray, перевірку результату через розмір ( length()) і побайтове порівняння ( contentEquals()), а також межі підходу «читати цілком» і типові помилки (наприклад, порівняння масивів через == і читання бінарного файлу як тексту).
    Відкрита
  • Файлові потоки: FileInputStream/FileOutputStream, EOF і use

    Kotlin SELF
    43 рівень, 2 лекція
    Розбираємо низькорівневу роботу з файлами на JVM через байтові потоки: як читати й записувати дані за допомогою FileInputStream/ FileOutputStream, чому InputStream.read() повертає Int і що означає -1 (EOF), як правильно повʼязувати результат read(buffer) з write(buffer, 0, n) і чому use {} — обовʼязкова звичка для закриття ресурсів.
    Відкрита
  • Буферизація та chunk‑копіювання

    Kotlin SELF
    43 рівень, 3 лекція
    Розбираємося, чому копіювання «байт за байтом» через read()/ write() зазвичай гальмує; чим відрізняється «наш» буфер ByteArray від обгорток BufferedInputStream/ BufferedOutputStream; який контракт у read(buffer) (значення n і -1 на EOF); і який вигляд має канонічний цикл chunk‑копіювання з output.write(buffer, 0, n). Наприкінці — як обрати розмір буфера, схема потоку даних (mermaid) і типові помилки.
    Відкрита
  • ZIP‑архіви: ZipEntry, читання/запис

    Kotlin SELF
    43 рівень, 4 лекція
    Розбираємо ZIP на JVM як потоковий «контейнер» записів: що зберігає ZipEntry (передусім name і ознаку каталогу), як коректно записувати архів через ZipOutputStream ( putNextEntry() → запис байтів → closeEntry()), як читати через ZipInputStream (перебирання nextEntry) і безпечно розпаковувати, захищаючись від шляхів на кшталт ../../secret.txt. Наприкінці — міні‑CLI та типові помилки.
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush