Я начинаю изучать 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 должен быть реализован метод записи, почему этот код не работает?
PrintStream#write(int)
автоматически не PrintStream#write(int)
поток при любых условиях. Состояние javadoc
Записывает указанный байт в этот поток. Если байт является новой строкой, и включена автоматическая промывка, тогда будет вызван метод flush.
В любом другом случае вам нужно сделать это явно
outConsole.flush();
System.out - это PrintSteam, который буферизируется по строке. Очистить
outConsole.flush();