我经历了java API文档。我弄了一些函数和类,发现了一些奇怪的东西。我写的下面的代码不是将标准输出流设置为默认值(System .OUT)。 起初,我将标准输出目标设置为一个文件,然后我尝试重置它,但它继续写入文件。在java中将标准输出流设置为默认值
try
{
file=new FileOutputStream("mamamia.txt",true);
//j=new BufferedOutputStream(file);
j=new PrintStream (file);
//byte[] b={49,50,44,67,44,23,57,32};
//j.write(b,0,5);
System.setOut(j);
System.out.println("hey mama mia");
System.out.println("hello gigs");
PrintStream j1=new PrintStream (System.out);
System.setOut(j1);
System.out.println("Hey bro");
j.flush();
file.flush();
file.close();
j.close();
}
“嘿兄弟”是越来越印在file.Why是它不会恢复为默认? Prinstream构造函数查找类型OutputStream.Since,因为PrintStream是OutputStream的一个间接子类,我直接传递了System.out.It不会显示任何错误,唯一的问题是它不会返回到默认值。 有人可以帮忙吗?
'PrintStream的J1 =新的PrintStream(System.out的);'你有以前将System.out设置为PrintStream'j',以便它不会得到默认值 – Yazan
@Yazan 我将它设置回j1,它指向default-(System.out)。 为什么我无法更改它? –
重点是,你已经将System.out从默认更改为'j',所以现在当你调用System.out时它将不是默认值。 – Yazan