2017-08-01 24 views
-1

我試圖用一個PrintStream那字符串寫入到另一個的OutputStream(在這種情況下下,System.out)指導Outputstreams到的System.out流

public void druckeDaten(OutputStream os){ 

    String t = "ID = " + getID() + " \"" + getTitel() + "\" " 
      + "von " + interpreter + " aus " + getJahr() 
      + " Spieldauer: " + dauer + " sek."; 

    PrintStream pw = new PrintStream(os); 
    pw.printf(t); 
    pw.flush(); 
    pw.close(); 
} 

如果我調用該方法druckeDaten在循環,控制檯只打印一行

Collections.sort(liste); 
//liste is a LinkedList containing the Objects that I want to use the druckeDaten on 
     for(Medium m : liste) 
      m.druckeDaten(System.out); 

我在哪裏出錯了?

+0

您正在關閉您的方法druckeDaten中的流。 – Markus

回答

0

您關閉了您的PrintStream,這會將close()級聯到基礎流。你關閉了System.out(這也是PrintStream,所以沒必要包裝它)。

+0

非常感謝 –