天天看點

java 輸入流關閉順序_Java IO流中先關閉輸出流還是先關閉輸入流?為什麼?

流相關e69da5e887aa3231313335323631343130323136353331333363393133資源

流相關資源一般遵循:

1)先開後關,先開的輸入流,再開的輸出流,通過讀取輸入流寫入輸出流中,那麼應該先關輸出流,再關輸入流,但是一般關閉輸入輸出流操作都是在讀寫完成後的finally中執行的,是以即使先關輸入流,再關輸出流也不會任何問題,因為讀寫操作沒有進行了。

2)先關外層,再關内層。如BufferedInputStream包裝了一個FileInputStream,那麼先

關BufferedInputStream,再關FileInputStream。但要注意的是由于一般處理流持有節點流引用,處理流都會在自己的close方法中去關閉節點流,是以我們隻要關閉外層的處理流即可,如果多此一舉的關閉節點流反而會報錯。如BufferedInputStream包裝了FileInputStream,我們隻要關閉BufferedInputStream即可

3)隻關處理流,不關節點流,原因見上述第二條