我經歷了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