我开始学习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必须实现write方法,为什么这段代码不起作用呢?
答案 0 :(得分:4)
PrintStream#write(int)
不会在所有条件下自动刷新流。 javadoc陈述
将指定的字节写入此流。如果该字节是换行符和 启用自动刷新,然后将调用flush方法。
在任何其他情况下,您需要明确地
outConsole.flush();
答案 1 :(得分:1)
System.out是一个PrintSteam,line buffered。冲洗它
outConsole.flush();