Java?IO之流的分類詳解
一、根據(jù)流向分為輸入流和輸出流:
注意輸入流和輸出流是相對于程序而言的。
輸出:把程序(內(nèi)存)中的內(nèi)容輸出到磁盤、光盤等存儲設(shè)備中
輸入:讀取外部數(shù)據(jù)(磁盤、光盤等存儲設(shè)備的數(shù)據(jù))到程序(內(nèi)存)中
綜合起來:
二、根據(jù)傳輸數(shù)據(jù)單位分為字節(jié)流和字符流
上面的也是 Java IO流中的四大基流。這四大基流都是抽象類,其他流都是繼承于這四大基流的。
三、根據(jù)功能分為節(jié)點流和包裝流
節(jié)點流:可以從或向一個特定的地方(節(jié)點)讀寫數(shù)據(jù)。如FileReader.
處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調(diào)用實現(xiàn)數(shù)據(jù)讀寫。如BufferedReader.處理流的構(gòu)造方法總是要帶一個其他的流對象做參數(shù)。一個流對象經(jīng)過其他流的多次包裝,稱為流的鏈接。
操作 IO 流的模板:
①、創(chuàng)建源或目標(biāo)對象
輸入:把文件中的數(shù)據(jù)流向到程序中,此時文件是 源,程序是目標(biāo)
輸出:把程序中的數(shù)據(jù)流向到文件中,此時文件是目標(biāo),程序是源
②、創(chuàng)建 IO 流對象
輸入:創(chuàng)建輸入流對象
輸出:創(chuàng)建輸出流對象
③、具體的 IO 操作
④、關(guān)閉資源
輸入:輸入流的 close() 方法
輸出:輸出流的 close() 方法
注意:1、程序中打開的文件 IO 資源不屬于內(nèi)存里的資源,垃圾回收機制無法回收該資源。如果不關(guān)閉該資源,那么磁盤的文件將一直被程序引用著,不能刪除也不能更改。所以應(yīng)該手動調(diào)用 close() 方法關(guān)閉流資源
最后這是 Java IO 流的整體架構(gòu)圖,下面幾篇博客將會詳細(xì)講解這些流:
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java8接口中引入default關(guān)鍵字的本質(zhì)原因詳析
Default方法是在java8中引入的關(guān)鍵字,也可稱為Virtual extension methods—虛擬擴展方法,這篇文章主要給大家介紹了關(guān)于Java8接口中引入default關(guān)鍵字的本質(zhì)原因,需要的朋友可以參考下2022-01-01詳解SpringBoot統(tǒng)一響應(yīng)體解決方案
這篇文章主要介紹了詳解SpringBoot統(tǒng)一響應(yīng)體解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Spring框架開發(fā)scope作用域分析總結(jié)
這篇文章主要介紹了Spring框架開發(fā)中scope作用域的分析總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2021-09-09詳解Spring Cloud Gateway 數(shù)據(jù)庫存儲路由信息的擴展方案
這篇文章主要介紹了詳解Spring Cloud Gateway 數(shù)據(jù)庫存儲路由信息的擴展方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11