Как очистить консоль в Kotlin

В Kotlin нет универсальной стандартной функции clearConsole(). Консоль принадлежит операционной системе или IDE, поэтому очистка зависит от окружения. Для учебной программы чаще используют ANSI escape:

fun clearConsole() {
    print("\u001b[H\u001b[2J")
    System.out.flush()
}

Вызов:

fun main() {
    println("Старый текст")
    readln()
    clearConsole()
    println("Новый экран")
}

Почему это может не сработать

ANSI escape хорошо работает во многих терминалах Linux, macOS, Windows Terminal и современных консолях. Но в некоторых IDE Run window управляющие символы могут отображаться как текст или игнорироваться

Если пример не очищает окно в IntelliJ IDEA, попробуйте запустить программу в обычном терминале

Вариант через системные команды

Можно вызвать команду ОС:

fun clearConsoleCommand() {
    val os = System.getProperty("os.name").lowercase()

    if (os.contains("windows")) {
        ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor()
    } else {
        ProcessBuilder("clear").inheritIO().start().waitFor()
    }
}

Этот вариант ближе к настоящей очистке терминала, но он сложнее и зависит от доступности команд cls или clear

Что выбрать новичку

Для простой учебной игры или меню можно не очищать консоль, а печатать разделитель:

fun printSeparator() {
    repeat(30) {
        println()
    }
}

Да, это не настоящая очистка. Зато работает почти везде и не отвлекает от логики программы

Для меню лучше перерисовывать экран

Если вы делаете консольное меню, вынесите отрисовку в отдельную функцию:

fun renderMenu() {
    clearConsole()
    println("1. Новая игра")
    println("2. Настройки")
    println("0. Выход")
}

Так вам будет проще заменить способ очистки позже. Например, в IDE можно временно поставить пустые строки, а в настоящем терминале вернуть ANSI escape

Альтернатива для отладки

Во время отладки консоль лучше не очищать. Старые строки помогают понять, где программа пошла не туда. Можно добавить флаг:

const val DEBUG = true

fun safeClearConsole() {
    if (!DEBUG) {
        clearConsole()
    }
}

Пока вы проверяете ввод и ветки меню, оставьте DEBUG = true. Когда логика работает, переключите на false и получите более чистый экран

Как проверить

  1. Запустите программу в терминале.
  2. Напечатайте несколько строк.
  3. Вызовите clearConsole().
  4. Посмотрите, исчез ли старый текст.

Если не исчез, проверьте окружение: IDE, терминал, Windows Terminal, PowerShell, macOS Terminal или Linux shell

Частые ошибки

Ждать одинакового поведения везде

Консоль в IntelliJ IDEA и настоящий терминал могут вести себя по-разному

Очищать консоль ради красоты

В учебных задачах важнее понятная логика. Если очистка мешает отладке, временно выключите ее

Запускать внешние команды без причины

ProcessBuilder мощный, но для простого меню часто достаточно ANSI или пустых строк

Что почитать дальше по Kotlin

Если нужен общий маршрут по теме, откройте рубрику Kotlin. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x