大战熟女丰满人妻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ù)文檔推薦 >>
主站蜘蛛池模板: 欧美性猛片xxxxⅹ免费 | 蜜桃久久久久久久久久久 | 欧美精品xxx | 欧美精品亚洲精品日韩专区 | 久草视频在线免费播放 | 久久乱码精品区中文字幕 | 天天干天天干天天干天天 | 中文字幕 一区 婷婷 在线 | 免费鲁丝片一级在线观看 | 亚洲婷婷综合中文字幕第一页 | 成人毛片免费观看视频 | 久久永久免费 | 日韩亚洲综合精品国产 | 噜噜噜天天躁狠狠躁夜夜精品 | 亚洲成 人a影院青久在线观看 | 国产激情久久久久影院小草 | 尹人香蕉久久99天天拍欧美p7 | 日本不卡中文字幕 | 日日摸夜夜夜夜夜添 | 亚洲国产美女精品久久久久 | 亚洲欧美日韩中文高清一 | 亚洲一区免费在线观看 | 成人精品在线 | 四虎成人免费观看在线网址 | 日本免费网址 | 亚洲五月综合网色九月色 | 亚洲国产一区二区三区最新 | 久夜色精品国产一区二区三区 | 日本一级看片免费播放 | 99久久香蕉| 欧美日本三级 | 日日摸夜夜添夜夜添毛片 | 爆操在线 | 操操操日日日 | 欧美成人一区二免费视频 | 天天干夜夜爽天天操夜夜爽视频 | 五月婷婷激情 | 欧美日韩亚洲国产一区二区综合 | 欧美一级毛片免费观看视频 | 久操视频网 | www.香蕉视频 |