Почему метод write () класса OutputStream не работает в консоли?

1

Я начинаю изучать Java, и я не понимаю, почему этот код не работает:

import java.io.*;

public class Principal
{
    public static void main (String args[]) throws IOException
    {
        OutputStream outConsole = System.out;

        outConsole.write(101);
    }
}

System.out - объект PrintStream, PrintStream - подкласс OutputStream. OutputStream - абстрактный класс, а write() - абстрактный метод. Так что, наверное, у PrintStream должен быть реализован метод записи, почему этот код не работает?

Теги:
outputstream
system

2 ответа

4
Лучший ответ

PrintStream#write(int) автоматически не PrintStream#write(int) поток при любых условиях. Состояние javadoc

Записывает указанный байт в этот поток. Если байт является новой строкой, и включена автоматическая промывка, тогда будет вызван метод flush.

В любом другом случае вам нужно сделать это явно

outConsole.flush();
1

System.out - это PrintSteam, который буферизируется по строке. Очистить

outConsole.flush();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню