Задачи решил, лёгкие, но...теперь то мне кто-нибудь объяснит где конкретно это применимо??
А то объяснение "Ну можно поменять вывод вместо консоли в файл" не канает. Можно сразу вывести в файл. Или дописать чтобы выводило и в файл и в консоль.
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");
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ