JavaRush /Курсы /Java Core /Задачи на потоки | 9 уровень

Задачи на потоки | 9 уровень

Java Core
9 уровень , 8 лекция
Открыта

— Привет, Амиго!

12
Задача
Java Core, 9 уровень, 8 лекция
Недоступна
Ридер обертка
В методе main подмени объект System.out написанной тобой ридер-оберткой по аналогии с лекцией. Твоя ридер-обертка должна преобразовывать весь текст в заглавные буквы. Вызови готовый метод printSomething(), воспользуйся testString. Верни переменной System.out первоначальный поток. Выведи модифицирова
6
Задача
Java Core, 9 уровень, 8 лекция
Недоступна
Ридер обертка 2
В методе main подмените объект System.out написанной тобой ридер-оберткой по аналогии с лекцией. Твоя ридер-обертка должна заменять все подстроки "te" на "??". Вызови готовый метод printSomething(), воспользуйтесь testString. Верни переменной System.out первоначальный поток. Выведи модифицированную
6
Задача
Java Core, 9 уровень, 8 лекция
Недоступна
Выводим только цифры
В методе main подмени объект System.out написанной тобой ридер-оберткой по аналогии с лекцией. Твоя ридер-обертка должна выводить только цифры. Вызови готовый метод printSomething(), воспользуйтесь testString. Верни переменной System.out первоначальный поток. Выведи модифицированную строку в консоль
12
Задача
Java Core, 9 уровень, 8 лекция
Недоступна
Решаем пример
В методе main подмени объект System.out написанной тобой ридер-оберткой по аналогии с лекцией. Твоя ридер-обертка должна выводить на консоль решенный пример. Вызови готовый метод printSomething(), воспользуйтесь testString. Верни переменной System.out первоначальный поток. Возможные операции: + - *
12
Задача
Java Core, 9 уровень, 8 лекция
Недоступна
Дублируем текст
Считайте с консоли имя файла. В main подмените объект System.out написанной вами ридер-оберткой. Ридер-обертка должна дублировать вывод всего текста в файл, имя которого было считано. Вызовите готовый метод printSomething(), воспользуйтесь testString и верните переменной System.out первоначальный поток. Закройте поток файла.
Комментарии (216)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vitalii Diacenco Уровень 30
12 февраля 2026
like
Grey Blog Уровень 20
30 ноября 2025
В задаче Выводим только цифры неправильное четвертное требование требование
Anonymous #3585174 Уровень 33
10 сентября 2025
Like
Dirk Gently Уровень 1
29 июня 2025
Господь сжалился над нами и вернул Easy задачи
Zim4ik Уровень 51
22 июня 2025
Странно что не принял во второй задаче. String result = byteArrayOutputStream.toString().replaceAll("[te]{2,}", "??");
Никита Уровень 1
22 сентября 2025
у вас просто неверное регулярное выражение написано, которое также заменит комбинации ee, tt, et на ??. Достаточно было просто replaceAll("te", "??")
18 июня 2025
Действительно полезные задачи, которые помогли мне понять тему подмены стандартных потоков ввода и вывода с консоли
Antariko Уровень 1
7 февраля 2025
Задачи решил, лёгкие, но...теперь то мне кто-нибудь объяснит где конкретно это применимо?? А то объяснение "Ну можно поменять вывод вместо консоли в файл" не канает. Можно сразу вывести в файл. Или дописать чтобы выводило и в файл и в консоль.
Никита QA Уровень 34
28 апреля 2025
DeepSeek приводит следующие примеры: Перенаправление System.out полезно везде, где нужно: - Тестировать вывод методов, - Логировать консольный вывод, - Подавлять ненужные сообщения, - Модифицировать текст перед выводом, - Анализировать работу сторонних программ. Примеры: 1) Тестирование вывода программы (Юнит-тесты):

@Test
public void testPrintSomething() {
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    System.setOut(new PrintStream(outputStream));
    
    testString.printSomething(); // вывод перехватывается
    
    System.setOut(System.out); // возвращаем консоль
    assertEquals("it's a text for testing\n", outputStream.toString());
}
2) Логирование и перехват вывода:

public void runExternalScript() {
    PrintStream originalOut = System.out;
    try {
        ByteArrayOutputStream logBuffer = new ByteArrayOutputStream();
        System.setOut(new PrintStream(logBuffer));
        
        // Запуск внешнего кода
        someExternalLibrary.execute(); // весь вывод идет в logBuffer
        
        // Сохраняем вывод в БД
        database.saveLog(logBuffer.toString());
    } finally {
        System.setOut(originalOut); // гарантированно восстанавливаем консоль
    }
}
Никита QA Уровень 34
28 апреля 2025
3) Мокинг (подмена) System.out в демонстрационных целях:

public static void silentModeDemo() {
    PrintStream originalOut = System.out;
    System.setOut(new PrintStream(new NullOutputStream())); // /dev/null
    
    someNoisyMethod(); // вывод игнорируется
    
    System.setOut(originalOut);
    System.out.println("Шумный метод завершил работу тихо.");
}
4) Парсинг вывода других программ:

ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "dir");
builder.redirectOutput(ProcessBuilder.Redirect.PIPE);
Process process = builder.start();

// Чтение вывода процесса в строку
String output = new String(process.getInputStream().readAllBytes());
5) Кастомизация вывода (например, цветной текст):

public class ColorConsole {
    public static void main(String[] args) {
        PrintStream originalOut = System.out;
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        System.setOut(new PrintStream(buffer));
        
        System.out.println("Ошибка: файл не найден!");
        
        System.setOut(originalOut);
        System.out.println("\u001B[31m" + buffer.toString() + "\u001B[0m");
    }
}
Anonymous #3482594 Уровень 40
14 декабря 2024
ох у эти регулярные выражения, точно их запомним
{Java_Shark} Уровень 36
11 декабря 2024
++
Vita Уровень 28 Expert
5 июля 2024
я точно знаю что могу написать лучше, но конец дня, хочется спать, а если не успеть к полуночи то прогресс обнулится и ачивка не будет получена )
Dr.Alexcemen9 Уровень 51
16 июля 2024
держи в курсе
maxmaxmax Уровень 32
30 июля 2024
могу ошибаться но скорее всего время обновятся в 03:00 по мск, то есть UTC +0
Mikhail Tabakaev Уровень 31
26 сентября 2024
чотка сказано)
Mikhail Tabakaev Уровень 31
26 сентября 2024
all we need is ideal application. all we do is SHITCODE))) IT'S TIME MATTER...