日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java万法_Java I/O库的设计分析

發布時間:2023/12/10 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java万法_Java I/O库的设计分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java采用了流的機制來實現輸入/輸出。所謂流,就是數據的有序排列。

而流可以是從某個源(稱為流源或Source of Stream)出來,到某個目的地(稱為流匯或Sink of Stream)去的。

由流的方向,可以分成輸入流和輸出流。一個程序從輸入流讀取數據向輸出流寫數據。

流處理器所處理的流必定都有流源,而如果將流類所處理的流源分類的話,基本可以分成兩大類:

第一 數組,String,File等,這一種叫原始流源。

第二 同樣類型的流用做鏈接流類的流源,叫鏈接流源。

Java語言的I/O庫是對各種常見的流源,流匯以及處理過程的抽象化。

客戶端的Java程序不必知道最終的流源,流匯是磁盤上的文件還是數組等;(原始流)

也不必關心數據是否經過緩沖的,可否按照行號讀取等處理的細節。(鏈接流)

要理解Java I/O這個龐大而復雜的庫,關鍵是要掌握兩個對稱性跟兩個設計模式。

Java I/O庫具有兩個對稱性,它們分別是:

1 輸入-輸出對稱性:

比如InputStream和OutputStream各自占據Byte流的輸入與輸出的兩個平行的等級結構的根部。

而Reader和Writer各自占據Char流的輸入與輸出的兩個平行的等級結構的根部。

2 byte-char對稱:

InputStream和Reader的子類分別負責Byte和Char流的輸入;

OutputStream和Writer的子類分別負責Byte和Char流的輸出,

它們分別形成平行的等級結構。

Java I/O庫的兩個設計模式:

裝飾者模式(Decorator)

適配器模式(Adapter)

1 裝飾者模式:

在由InputStream,OutputStream,Reader和Writer代表的等級結構內部,有一些流處理器可以對另一些流處理器起到裝飾作用,形成新的,具有改善了的功能的流處理器。

【裝飾者模式是Java I/O庫的整體設計模式】

2 適配器模式:

在由InputStream,OutputStream,Reader和Writer代表的等級結構內部,有一些流處理器是對其它類型的流源的適配。

【適配器模式應用到了原始流處理器的設計上面,構成了I/O庫所有流處理器的起點。】

裝飾者模式的具體應用:

Java I/O庫是由一些基本的原始流處理器和圍繞它們的裝飾流處理器所組成的。

InputStream類型中的裝飾模式:

InputStream有七個直接的具體子類,和四個屬于FilterInputStream的具體子類。

根據輸入流的源的類型,可以將這些流類分成兩種,

即原始流類(Original Stream)和鏈接流處理器(Wrapper Stream)。

原始流處理器:

接收一個Byte數組對象,String對象,FileDiscriptor對象或者不同類型的流源對象。

包括以下四種:

1)ByteArrayInputStream

2)FileInputStream

3)PipedInputStream

4)StringBufferInputStream

鏈接流處理器:

就是可以接收另一個流對象作為源,并對之進行功能擴展的類。

包括以下幾種:

1)FilterInputStream,四個子類如下:

1.1)BufferedInputStream

1.2)DataInputStream

1.3)LineNumberInputStream

1.4)PushbackInputStream

2)ObjectInputStream

3)SeqcueneInputStream

裝飾模式的使用目的:

鏈接流對象接收一個原始流對象或者另外一個鏈接流對象作為流源;

另一方面他們對流源的內部工作方法做了相應的改變。

適配器模式的具體應用:

FileInputStream是一個適配器類:

它繼承了InputStrem類型,同時持有一個對FileDiscriptor的引用。

這是將一個FileDiscriptor對象適配成InputStrem類型的對象形式的適配器模式。

StringBufferInputStream是一個適配器類:

它繼承了InputStream類型,同時持有一個對String對象的引用。

這是一個將String對象適配成InputStream類型的對象形式的適配器模式。

ByteArrayOutputStream是一個適配器類:

它繼承了OutputStream類型,同時持有一個對byte數組的引用。

這是一個將byte數組的接口適配成OutputStream類型的接口的適配器模式。

FileOutputStream是一個適配器類:

它繼承了OutputStream類型,同時持有一個對FileDiscriptor對象的引用。

這是一個將FileDiscriptor接口適配成OutputStream接口的適配器模式。

StringReader是一個適配器類:

它類繼承了Reader類型,持有一個對String對象的引用。

這是一個將String的接口適配成Reader類型的接口的適配器模式。

InputStreamReader是一個適配器類:

它繼承了Reader類型,同時持有一個對InputStream對象的引用。

InputStreamReader是從byte輸入流到char輸入流的一個適配器

OutputStreamWriter是適配器類:

。。。

OutputStringWriter是從OutputStream到Writer的適配器類

與任何一個OutputStream的具體子類相鏈接時,OutputStringWriter可以將OutputStream類型的byte流適配成為char流。

其他參考內容:

原始流處理器

1. ByteArrayInputStream:為多線程的通信提供緩沖區操作功能,接收一個Byte數組作為流的源。

2. FileInputStream:建立一個與文件有關的輸入流。接收一個File對象作為流的源。

3. PipedInputStream:可以與PipedOutputStream配合使用,用于讀入一個數據管道的數據,接收一個PipedOutputStream作為源。

4. StringBufferInputStream:將一個字符串緩沖區轉換為一個輸入流。接收一個String對象作為流的源。

(JDK幫助文檔上說明:已過時。此類未能正確地將字符轉換為字節。從JDK1.1開始,從字符串創建流的首選方法是通過StringReader類進行創建。只有字符串中每個字符的低八位可以由此類使用。)

鏈接流處理器:

1. FilterInputStream稱為過濾輸入流,它將另一個輸入流作為流源。這個類的子類包括以下幾種:

BufferedInputStream:用來從硬盤將數據讀入到一個內存緩沖區中,并從緩沖區提供數據。

DataInputStream:提供基于多字節的讀取方法,可以讀取原始類型的數據。

LineNumberInputStream:提供帶有行計數功能的過濾輸入流。

PushbackInputStream:提供特殊的功能,可以將已經讀取的字節“推回”到輸入流中。

2. ObjectInputStream可以將使用ObjectInputStream串行化的原始數據類型和對象重新并行化。

3. SeqcueneInputStream可以將兩個已有的輸入流連接起來,形成一個輸入流,從而將多個輸入流排列構成一個輸入流序列。

Java語言的I/O庫提供InputStream,OutputStream,Reader,Writer四個系列的類。

InputStream和OutputStream處理8位字節流數據;Reader和Writer處理16位的字符流數據。

InputStream和Reader處理輸入,OutputStream和Writer處理輸出。

Java語言支持四種類型:Java接口,Java類,Java數組,原始類型(即int,float等)。

前三種是引用類型,類和數組的實例是對象,原始類型的值不是對象。

也即,Java語言的數組是像所有的其他對象一樣的對象,而不管數組中所存儲的元素類型是什么。

總結

以上是生活随笔為你收集整理的java万法_Java I/O库的设计分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91视频二区 | 亚洲欧美日韩在线一区 | 五月婷婷丁香 | 人人舔人人干 | 在线视频一区二区三区 | 久艹在线 | 日本中文字幕高清 | 韩国伦理片在线播放 | 丰满人妻一区二区三区免费视频棣 | 偷拍欧美亚洲 | 中文在线第一页 | 国产香蕉在线观看 | 在线精品自拍 | 国产最新在线 | 欧美在线精品一区 | 日韩在线一区视频 | 精品看片| 亚洲精品色 | 日韩久久中文字幕 | 91chinese在线 | 日韩性大片 | 动漫美女被到爽 | 老司机精品视频在线 | 日韩高清在线观看 | 在线精品亚洲欧美日韩国产 | 99久久精品国产一区二区三区 | 成人免费黄色网址 | jiuse九色| 国产成人免费在线 | 777奇米色 | 国产一区二区三区四区精 | 日本无遮挡边做边爱边摸 | 中文字幕免费中文 | 国产黄色免费视频 | 特黄特色大片免费播放器使用方法 | 99亚洲精品 | 乌克兰av在线 | 高清无码一区二区在线观看吞精 | 久久黄色片 | 含羞草一区二区 | 国产这里只有精品 | 亚洲第一第二区 | 欧美变态口味重另类 | 91插插插插插插插插 | 国产亚洲网站 | 成人tv | 少妇人妻偷人精品无码视频 | 美国黄色一级大片 | 欧美天堂 | 色哟哟视频网站 | 久久夜色精品国产欧美乱 | 国产在线成人精品午夜 | 国产在线视频一区二区三区 | 羞羞动漫在线观看 | 国产日本在线 | 亚洲综合精品国产一区二区三区 | 能在线看的av| 久久久久香蕉视频 | 亚洲第一天堂在线观看 | 96亚洲精品久久久蜜桃 | 日韩成人午夜电影 | 欧美激情一区在线 | 日本吃奶摸下激烈网站动漫 | 亚洲av无一区二区三区怡春院 | 成全世界免费高清观看 | 亚洲品质自拍 | 爱爱视频一区二区 | 精品少妇人妻一区二区黑料社区 | av午夜在线观看 | 懂色av一区二区在线播放 | 人妻一区二区三区视频 | 99久久免费看精品国产一区 | 拍国产真实乱人偷精品 | 91黄瓜视频 | 成人手机看片 | 国产在线999 | 一级黄色片片 | 99re6在线观看 | 国产在线第一页 | 国产激情在线视频 | 高清日韩欧美 | 久草久操| 亚洲射情| 色偷偷免费费视频在线 | 韩国黄色大片 | 亚洲精品视频一区二区 | 欧美一区二区三区激情啪啪 | 免费av免费观看 | 制服诱惑一区 | 一本加勒比北条麻妃 | www.4虎| 国产精品扒开腿做爽爽爽男男 | 99热手机在线观看 | 精品美女在线 | 午夜一区二区视频 | 91成人免费看片 | 日本不卡一 | 日韩在线一二三区 | 中文字幕+乱码+中文字幕一区 |