java設計模式之適配器模式以及在java中作用

來源:互聯網
上載者:User

標籤:name   []   作用   asc   轉變   java設計   字元   code   資料儲存   

適配器作用就是講一個介面適配到另一個介面,在Java 的I/O類庫中有很多這樣的需求,如將字串資料轉變成位元組資料儲存到檔案中,將位元組資料轉變成流資料等。

以InputStreamReader和OutputStreamWriter類為例。

InputStreamReader和OutputStreamWriter類分別繼承了Reader和writer介面,但是要建立他們的對象必須在建構函式中傳入一個InputStream和OutputStream

的執行個體,InputStreamReader和OutputStreamWriter類的作用也就是將InputStream和OutputStream適配到Reader和Writer。

適配器是InputStreamReader,源角色是InputStream代表的執行個體對象,目標介面就是Reader類。

 

 

InputStream:得到的是位元組輸入資料流,InputStream.read("filename")之後,得到位元組流

Reader:讀取的是字元流

InputStreamReader:從位元組到字元的橋樑。InputStreamReader(InputStream.read("filename"));

reader.read(InputStreamReader(InputStream in));便可從位元組變為字元,列印顯示了。

 

java.io.Reader 和 java.io.InputStream 組成了Java 輸入類。

Reader 用於讀入16位字元,也就是Unicode 編碼的字元;而 InputStream 用於讀入 ASCII 字元和位元據。

Reader支援16位的Unicode字元輸出,

InputStream支援8位的字元輸出。

Reader和InputStream分別是I/O庫提供的兩套平行獨立的等級機構,

 

InputStreamReader類

InputStreamReader 將位元組流轉換為字元流。是位元組流通向字元流的橋樑。如果不指定字元集編碼,該解碼過程將使用平台預設的字元編碼,如:GBK。 
構造方法 : 
    InputStreamReader isr = new InputStreamReader(InputStream in);//構造一個預設編碼集的InputStreamReader類 
    InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);//構造一個指定編碼集的InputStreamReader類。 
    
    參數 in對象通過 InputStream in = System.in;獲得。//讀取鍵盤上的資料。 
    或者 InputStream in = new FileInputStream(String fileName);//讀取檔案中的資料。可以看出 FileInputStream 為InputStream的子類。 
主要方法 :int read();//讀取單個字元。 
                 int read(char []cbuf);//將讀取到的字元存到數組中。返回讀取的字元數。

 

 

參考的原文連結http://www.cnblogs.com/java-my-life/archive/2012/04/13/2442795.html

java設計模式之適配器模式以及在java中作用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.