System.out: примеры (JAVA)

System.out: методы и примеры использования в Java
Раздел: Ввод-вывод (I/O) консольный
System.out: PrintStream

Описание и назначение System.out

System.out это статическое поле класса java.lang.System, представляющее собой объект типа PrintStream, подключенный к стандартному потоку вывода (консоль). Используется для вывода текстовой информации пользователю.

Основные методы: print (вывод без перевода строки), println (с переводом строки), printf (форматированный вывод), write (вывод байтов), flush (сброс буфера).

Аргументы: print и println принимают один аргумент любого типа (int, float, boolean, char, String, Object и т.д.) или без аргументов (println() выводит пустую строку). printf принимает строку формата и переменное число аргументов.

Возвращаемое значение: print и println возвращают void. printf возвращает PrintStream, что позволяет выстраивать цепочки вызовов.

Примеры использования

System.out.println("Hello, world!");
Hello, world!
System.out.print(42);
42
System.out.printf("Number: %d, String: %s%n", 10, "test");
Number: 10, String: test
System.out.println();
(пустая строка)
System.out.println(3.14);
3.14
System.out.println(true);
true
System.out.println('A');
A

Альтернативы в Java

System.err (стандартный поток ошибок) - используется для вывода сообщений об ошибках, не смешивается с обычным выводом. java.util.logging.Logger (гибкое логирование с уровнями, фильтрами, форматированием). Log4j и SLF4J - мощные библиотеки для промышленного логирования. System.out подходит для простых консольных программ и отладки, Logger и Log4j - для серьёзных проектов, где требуется гибкая настройка вывода.

Аналоги в других языках

PHP: echo, print_r, var_dump.

echo "Hello, world!\n";
Hello, world!

JavaScript: console.log.

console.log("Hello, world!");
Hello, world!

Python: print.

print("Hello, world!")
Hello, world!

C#: Console.WriteLine.

Console.WriteLine("Hello, world!");
Hello, world!

Go: fmt.Println.

fmt.Println("Hello, world!")
Hello, world!

Kotlin: println.

println("Hello, world!")
Hello, world!

Lua: print.

print("Hello, world!")
Hello, world!

SQL: оператор SELECT выводит результат запроса, но в контексте СУБД, а не консоли.

Типичные ошибки

  1. Неправильный формат в printf. Использование %d для строки:

    System.out.printf("%d", "text");
    java.util.IllegalFormatConversionException
  2. Буферизация без сброса. При использовании write() без перевода строки вывод может не появиться:

    System.out.write(65); // 'A'
    (ничего не отображается до вызова flush())
  3. Непреднамеренный вывод в System.out вместо System.err. Ошибки стоит выводить в System.err, иначе они смешиваются с обычным выводом и их сложнее отделить.

Изменения в версиях Java

Основные методы System.out не претерпели существенных изменений. В Java 5 была добавлена поддержка varargs для printf (хотя сам метод появился ранее). В более поздних версиях (Java 8, 11, 17, 21) поведение осталось стабильным. В Java 18+ улучшена поддержка Unicode в консоли, но это зависит от терминала, а не от самого System.out.

Расширенные примеры

Перенаправление вывода в файл

Пример java
PrintStream fileStream = new PrintStream(new File("output.txt"));
PrintStream originalOut = System.out;
System.setOut(fileStream);
System.out.println("Текст в файле");
System.setOut(originalOut);
System.out.println("Текст на консоли");
В файл записывается "Текст в файле", на консоли появляется "Текст на консоли"

Форматирование с локализацией

Пример java
System.out.printf(Locale.GERMAN, "Число с запятой: %.2f%n", 1234.56);
Число с запятой: 1.234,56

Вывод с ANSI-цветами (поддерживаемые терминалы)

Пример java
System.out.println("\u001B[31mКрасный текст\u001B[0m");
(вывод красного текста)

Вывод массива

Пример java
int[] arr = {1,2,3};
System.out.println(Arrays.toString(arr));
[1, 2, 3]

Использование write для байтов

Пример java
byte[] data = {72, 101, 108, 108, 111}; // "Hello"
System.out.write(data, 0, data.length);
System.out.println();
Hello

Вывод с помощью append

Пример java
System.out.append("Hello ").append("World!");
Hello World!

Многопоточный вывод

Пример java
new Thread(() -> System.out.println("Thread1")).start();
new Thread(() -> System.out.println("Thread2")).start();
(строки выводятся целиком, порядок может меняться)

Прямое использование PrintStream

Пример java
PrintStream ps = System.out;
ps.println("Прямой вызов");
Прямой вызов

джава System.out function comments

En
System.out The standard output stream