更新時間:2020-05-18 15:32:55 來源:動力節(jié)點 瀏覽2483次
1.java.io的描述
通過數(shù)據(jù)流、序列化和文件系統(tǒng)提供系統(tǒng)輸入和輸出。
2.流編輯
流是一個很形象的概念,當(dāng)程序需要讀取數(shù)據(jù)的時候,就會開啟一個通向數(shù)據(jù)源的流,這個數(shù)據(jù)源可以是文件,內(nèi)存,或是網(wǎng)絡(luò)連接。類似的,當(dāng)程序需要寫入數(shù)據(jù)的時候,就會開啟一個通向目的地的流。這時候你就可以想象數(shù)據(jù)好像在這其中“流”動一樣。
3.Java流輸入輸出原理編輯
Java把這些不同來源和目標(biāo)的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流。Java語言的輸入輸出功能是十分強大而靈活的,美中不足的是看上去輸入輸出的代碼并不是很簡潔,因為你往往需要包裝許多不同的對象。
在Java類庫中,IO部分的內(nèi)容是很龐大的,因為它涉及的領(lǐng)域很廣泛:標(biāo)準(zhǔn)輸入輸出,文件的操作,網(wǎng)絡(luò)上的數(shù)據(jù)流,字符串流,對象流,zip文件流。
4.Java流的分類
按流向分:
按數(shù)據(jù)傳輸單位分:
按功能分:
java.io常用類
5.IO的基本分類
Java的I/O操作類在包java.io下,大概有將近80個類,但是這些類大概可以分成四組,分別是:
6.磁盤I/O工作機(jī)制
前面介紹了基本的JavaI/O的操作接口,這些接口主要定義了如何操作數(shù)據(jù),以及介紹了操作兩種數(shù)據(jù)結(jié)構(gòu):字節(jié)和字符的方式。還有一個關(guān)鍵問題就是數(shù)據(jù)寫到何處,其中一個主要方式就是將數(shù)據(jù)持久化到物理磁盤,下面將介紹如何將數(shù)據(jù)持久化到物理磁盤的過程。
我們知道數(shù)據(jù)在磁盤的唯一最小描述就是文件,也就是說上層應(yīng)用程序只能通過文件來操作磁盤上的數(shù)據(jù),文件也是操作系統(tǒng)和磁盤驅(qū)動器交互的一個最小單元。值得注意的是Java中通常的File并不代表一個真實存在的文件對象,當(dāng)你通過指定一個路徑描述符時,它就會返回一個代表這個路徑相關(guān)聯(lián)的一個虛擬對象,這個可能是一個真實存在的文件或者是一個包含多個文件的目錄。為何要這樣設(shè)計?因為大部分情況下,我們并不關(guān)心這個文件是否真的存在,而是關(guān)心這個文件到底如何操作。例如我們手機(jī)里通常存了幾百個朋友的電話號碼,但是我們通常關(guān)心的是我有沒有這個朋友的電話號碼,或者這個電話號碼是什么,但是這個電話號碼到底能不能打通,我們并不是時時刻刻都去檢查,而只有在真正要給他打電話時才會看這個電話能不能用。也就是使用這個電話記錄要比打這個電話的次數(shù)多很多。
何時真正會要檢查一個文件存不存?就是在真正要讀取這個文件時,例如FileInputStream類都是操作一個文件的接口,注意到在創(chuàng)建一個FileInputStream對象時,會創(chuàng)建一個FileDescriptor對象,其實這個對象就是真正代表一個存在的文件對象的描述,當(dāng)我們在操作一個文件對象時可以通過getFD()方法獲取真正操作的與底層操作系統(tǒng)關(guān)聯(lián)的文件描述。例如可以調(diào)用FileDescriptor.sync()方法將操作系統(tǒng)緩存中的數(shù)據(jù)強制刷新到物理磁盤中。
以上就是動力節(jié)點java培訓(xùn)機(jī)構(gòu)的小編針對“技術(shù)分析,Java開發(fā)接口之IO接口”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743