當前位置:首頁 » 編程語言 » java關閉流

java關閉流

發布時間: 2024-08-10 18:31:49

⑴ 為什麼在java中打開流後一定要關閉流好像關不關沒有不同,程序的結果都是一樣的。。。

這跟資源的佔用有關
比如你將一個100MB的word文檔轉換成流,然後進行分析存儲資料庫一樣
它是將這100MB的東西讀到內存,然後進行處理,如果你在使用的時候不關閉
那麼java就認為你是一直在使用
而不進行垃圾回收
那麼就占你100MB的內存
這樣有可能導致內存溢出

⑵ Java中為什麼先關閉輸出流後關閉輸入流

不絕對,要看依賴關系,先關被依賴的流,誰是被依賴的,就先關誰,比如代碼中從文件A讀出內容,然後寫入文件B , 這個時候讀A 要用輸入流 ,往B寫要用輸出流,必須要先從A讀出,然後才能往B寫,所以,這個場景下,輸出流 依賴 輸入流,操作完關流的時候就要先關被依賴的輸入流,再關輸出流。
還有,如果關流操作在finally塊中進行,順序就無所謂了。
如果輸入流和輸出流完全沒有依賴關系,那關流順序就更沒關系了,看心情就好。

⑶ Java IO流中先關閉輸出流還是先關閉輸入流為什麼

java中需要手動釋放的資源常見的有以下兩個:

  1. 流相關資源

    流相關資源一般遵循:

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

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

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

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

    流相關文章參考:http://blog.csdn.net/u012250875/article/details/78341874

  2. jdbc相關資源

    Connection,PrepareStatement,ResultSet三個資源。這三個資源的獲取順序是:

    先獲得一個jdbc連接對象Connection,再通過連接對象獲得一個sql預處理對象PrepareStatement,如果是查詢的話最後還會通過PrepareStatement對象獲取一個結果集ResultSet對象,關閉順序與獲取順序正好相反。先關ResultSet,再關PrepareStatement,最後關Connection。

熱點內容
車險電子保單解壓密碼 發布:2025-08-26 08:23:23 瀏覽:603
山東濟寧dns伺服器地址 發布:2025-08-26 08:04:19 瀏覽:209
手機站火雞qq帳號密碼在哪裡看 發布:2025-08-26 08:02:44 瀏覽:945
雪鐵龍c511款怎麼區分配置 發布:2025-08-26 08:02:03 瀏覽:900
安卓手機拍照錄像時怎麼旋轉 發布:2025-08-26 07:51:27 瀏覽:332
雲伺服器上傳程序 發布:2025-08-26 07:46:36 瀏覽:259
盜版廣聯達加密狗升級 發布:2025-08-26 07:45:06 瀏覽:25
c語言中形參的默認存儲類別是 發布:2025-08-26 07:39:14 瀏覽:441
極限越野安卓怎麼玩 發布:2025-08-26 07:25:20 瀏覽:985
網頁配置存儲 發布:2025-08-26 07:16:15 瀏覽:469