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

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java培訓(xùn) 深入學(xué)習(xí)Java I/O的輸入輸出,看了就會(huì)

深入學(xué)習(xí)Java I/O的輸入輸出,看了就會(huì)

更新時(shí)間:2021-12-02 16:11:23 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1560次

Java I/O需要處理多種場(chǎng)景,Java類庫(kù)的設(shè)計(jì)者都是通過(guò)創(chuàng)建大量的類來(lái)解決這個(gè)問(wèn)題的,單篇文章難以詳述,本文只是試圖提供一個(gè)通用的概述傳統(tǒng)I/O類庫(kù)所涉及的類,以掌握整個(gè)上下文,更好地理解和應(yīng)用I./O類庫(kù)解決實(shí)際編程問(wèn)題。具體需要參考JDK文檔。

深入學(xué)習(xí)java

1.輸入流/輸出流

在Java 1.0中,類庫(kù)的設(shè)計(jì)者首先限制所有與輸入相關(guān)的類都繼承自InputStream,而與輸出相關(guān)的所有類都繼承自O(shè)utputStream。

1)輸入流

InputStream用于表示從不同數(shù)據(jù)源生成輸入的類。這些數(shù)據(jù)來(lái)源包括:

  • 字節(jié)數(shù)組;
  • 字符串對(duì)象
  • 文件;
  • “管道”的工作方式與實(shí)際管道類似,即一端輸入,另一端輸出。
  • 一系列其他流,以便我們可以將它們收集并合并為一個(gè)流;
  • 其他數(shù)據(jù)源,如Internet連接等。

每個(gè)數(shù)據(jù)源都有其對(duì)應(yīng)的InputStream子類作為基本組件:

  • ByteArray InputStream,允許將內(nèi)存緩沖區(qū)用作InputStream;
  • String Buffer InputStream,將String轉(zhuǎn)換為InputStream;
  • FileInputStream,用于從文件中讀取信息;
  • PipedInputStream,它生成用于寫(xiě)入相關(guān)PipedOutputStream的數(shù)據(jù)。實(shí)現(xiàn)“流水線”的概念;
  • SequenceInputStream將兩個(gè)或多個(gè)InputStream對(duì)象轉(zhuǎn)換為單個(gè)InputStream。

2)輸出流

  • OutputStream用于表示可以輸出到不同數(shù)據(jù)源的類。它的特定子類決定了輸出的目的地:字節(jié)數(shù)組、文件或管道。它也用作基本組件:
  • ByteArray輸出流,它在內(nèi)存中創(chuàng)建緩沖區(qū)。所有發(fā)送到流的數(shù)據(jù)都應(yīng)該放在這個(gè)緩沖區(qū)中。
  • FileOutput Stream,用于將信息寫(xiě)入文件;
  • PipedOutputStream,任何寫(xiě)入其中的信息都會(huì)自動(dòng)作為相關(guān)PipedInputStream的輸出,實(shí)現(xiàn)“流水線”的概念;

3)裝飾器

除了上述基本組件外,還有兩個(gè)子類:FilterInputStream/FilterOutputStream,它們也是InputStream和OutputStream的子類。它們?yōu)?ldquo;decorator”類提供基類,其中“decorator”類可以將屬性或有用的接口連接到基本組件。因?yàn)樯厦嫣岬降腎nputStream/OutputStream是單字節(jié)操作的,而真正的I/O場(chǎng)景遠(yuǎn)不止于此,它通過(guò)“裝飾”來(lái)擴(kuò)展其功能(原理是類的組合)。

我自己梳理了InputStream/OutputStream流繼承層次結(jié)構(gòu),結(jié)合下面的講解,可以對(duì)字節(jié)流系統(tǒng)有更清晰的認(rèn)識(shí):

4)過(guò)濾輸入流

FilterInputStream類有以下子類,即具體的裝飾器:

  • 數(shù)據(jù)輸入流;
  • 緩沖輸入流;
  • 行號(hào)輸入流;

它的裝飾功能主要有兩個(gè)方面:

  • 讀取不同基本類型的數(shù)據(jù)和String對(duì)象,如DataInputStream;
  • 內(nèi)部修改InputStream的行為:Buffer InputStream,LineNumber InputStream,并保留它讀過(guò)的行;

5)過(guò)濾輸出流

與Filter Input Stream類似,F(xiàn)ilter Output Stream主要完成寫(xiě)入功能,主要包括以下裝飾器:

  • Data Output Stream與Data Input Stream一起使用,可以將基本類型的數(shù)據(jù)(int、char、long)以可移植的方式寫(xiě)入流。
  • PrintStream,用于生成格式化輸出。Data Output Stream處理數(shù)據(jù)存儲(chǔ),PrintStream處理顯示。
  • Buffered Output Stream,用于避免每次發(fā)送數(shù)據(jù)時(shí)的實(shí)際寫(xiě)操作。表示“使用緩沖區(qū)”。可以調(diào)用flush()清除緩沖區(qū);

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"深入學(xué)習(xí)Java I/O的輸入輸出,看了就會(huì)",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。     

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产成人无精品久久久 | 精品国产一区二区三区香蕉沈先生 | 久久这里只有精品免费的 | 99久久精品国产片久人 | 四虎影视国产精品婷婷 | 天天爽天天狼久久久综合 | 国产成人91 | 久草在线免费看 | 亚洲视频不卡 | 91最新视频在线观看 | 中文字幕一级毛片 | 久久99中文字幕久久 | 国产h版大片在线播放 | 羞羞在线 | 久草在线视频资源站 | 91在线视频播放 | 免费人成在线观看网站 | 国产亚洲日本人在线观看 | 日本特级黄色录像 | 国产3344永久在线观看视频 | 国产日产欧美精品 | 日本一级一片免费 | 大学生一级毛片 | 精品国产999| 天天色操 | 国产午夜精品久久久久免费视 | 国产精品真实对白精彩久久 | 国产精品自拍亚洲 | 婷婷激情在线视频 | 亚洲视屏一区 | 国产成人一区二区三区在线视频 | 成年人视频黄色 | 奇米网狠狠干 | 99视频有精品 | 国产白拍| 欧美又黄又嫩大片a级 | 成人欧美一区二区三区黑人免费 | 91热久久免费频精品动漫99 | 福利姬在线播放 | 伊在人亚洲香蕉精品播放 | 中文字幕日韩在线观看 |