大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 技術(shù)分析,Java開發(fā)接口之IO接口

技術(shù)分析,Java開發(fā)接口之IO接口

更新時間: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ù)好像在這其中“流”動一樣。

技術(shù)分析,Java開發(fā)接口之IO接口

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ù)的流。
  • 輸出流:程序能向其中寫入數(shù)據(jù)的流。

按數(shù)據(jù)傳輸單位分:

  • 字節(jié)流:以字節(jié)為單位傳輸數(shù)據(jù)的流
  • 字符流:以字符為單位傳輸數(shù)據(jù)的流

按功能分:

  • 節(jié)點流:用于直接操作目標(biāo)設(shè)備的流
  • 過濾流:是對一個已存在的流的鏈接和封裝,通過對數(shù)據(jù)進(jìn)行處理為程序提供功能強大、靈活的讀寫功能。

java.io常用類

  • JDK所提供的所有流類位于java.io包中,都分別繼承自以下四種抽象流類。
  • InputStream:繼承自InputStream的流都是用于向程序中輸入數(shù)據(jù)的,且數(shù)據(jù)單位都是字節(jié)(8位)。
  • OutputStream:繼承自O(shè)utputStream的流都是程序用于向外輸出數(shù)據(jù)的,且數(shù)據(jù)單位都是字節(jié)(8位)。
  • Reader:繼承自Reader的流都是用于向程序中輸入數(shù)據(jù)的,且數(shù)據(jù)單位都是字符(16位)。
  • Writer:繼承自Writer的流都是程序用于向外輸出數(shù)據(jù)的,且數(shù)據(jù)單位都是字符(16位)。

5.IO的基本分類

Java的I/O操作類在包java.io下,大概有將近80個類,但是這些類大概可以分成四組,分別是:

  • 基于字節(jié)操作的I/O接口:InputStream和OutputStream
  • 基于字符操作的I/O接口:Writer和Reader
  • 基于磁盤操作的I/O接口:File
  • 基于網(wǎng)絡(luò)操作的I/O接口:Socket編程

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ù)強制刷新到物理磁盤中。

技術(shù)分析,Java開發(fā)接口之IO接口

以上就是動力節(jié)點java培訓(xùn)機(jī)構(gòu)的小編針對“技術(shù)分析,Java開發(fā)接口之IO接口”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 看全色黄大色大片免费视频 | 色狠狠狠色噜噜噜综合网 | 亚洲精品中文字幕不卡在线 | 欧美成人天天综合天天在线 | 亚洲 欧美 日韩 在线 | 久久都是精品 | 婷婷综合社区 | 日韩欧美中文字幕出 | 欧美一级片网站 | 人人看操| 波多野结衣在线一区 | 成人三级做爰在线观看男女 | 999在线播放 | 人人狠狠综合久久亚洲 | 午夜精品久久久久久久90蜜桃 | 国产日产综合 | 天天曰天天干 | 国产成人拍精品视频网 | 人人爽天天碰天天躁夜夜躁 | 午夜免费福利影院 | 亚洲va国产日韩欧美精品色婷婷 | 在线国产视频一区 | 久久精品无码一区二区三区 | 精品无码久久久久久国产 | 欧美高清在线精品一区 | 国产精品免费一区二区三区四区 | 九九精品视频在线播放8 | 四虎影院中文字幕 | 亚洲视频在线免费观看 | 天天干天天做天天操 | 亚洲欧美自拍另类图片色 | 国产在线91精品入口首页 | 日本-区二区三区免费精品 日本热久久 | 日本毛片免费看 | 天天做天天爱夜夜大爽完整 | 偷拍清纯高清视频在线 | 女人十八毛片免费特黄 | 欧美成人性色生活18黑人 | 成年黄页免费大全网站 | 日日爽夜夜操 | 可以免费观看一级毛片黄a 可以直接看的毛片 |