为什么OutputStream类的write()方法在控制台中不起作用?

时间:2014-07-09 20:56:12

标签: java system outputstream

我开始学习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方法,为什么这段代码不起作用呢?

2 个答案:

答案 0 :(得分:4)

PrintStream#write(int)不会在所有条件下自动刷新流。 javadoc陈述

  

将指定的字节写入此流。如果该字节是换行符和   启用自动刷新,然后将调用flush方法。

在任何其他情况下,您需要明确地

outConsole.flush();

答案 1 :(得分:1)

System.out是一个PrintSteam,line buffered。冲洗它

outConsole.flush();