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