无法使用PrintWriter在Bluej控制台中打印

时间:2018-03-25 00:09:08

标签: java printing bluej printwriter

考虑以下代码 -

import java.io.*;

public class test
{

    public static void main(String[] args)
    {
        PrintWriter out= new PrintWriter(System.out);
        out.println(1);
        out.close();
    }
}

我第一次在bluej上运行它并在控制台上获得输出1。在再次运行它时,我根本没有输出,任何后续尝试都是如此。 很想知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

好的,这个方法只运行一次的问题是PrintWriter.close()方法也会关闭父Stream,在这种情况下System.out

因此,当您下次调用此方法时,System.out将被关闭,并且不会打印任何内容。

所以解决方案不是关闭PrintWriter 但在这种情况下,不会打印任何内容,因为PrintWriter的输出不会被刷新。要做到这一点,您必须自己调用out.flush()或使用能够在行结束时自动刷新的构造函数。

TL; DR:

要么使用它:

import java.io.*;

public class test
{

    public static void main(String[] args)
    {
        PrintWriter out= new PrintWriter(System.out);
        out.println(1);
        out.flush();
    }
}

或者这个:

import java.io.*;

public class test
{

    public static void main(String[] args)
    {
        PrintWriter out= new PrintWriter(System.out, true);
        out.println(1);
    }
}