標籤: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中作用