JAVA--IO--4--java io流中涉及的設計模式


java io流中涉及的設計模式


介紹

先看一段代碼,查看其中涉及到的模式

public void testInputStreamReader() throws Exception {
    private static final String SEPARATOR = File.separator;

    File file = new File("e:" + SEPARATOR + "io" + SEPARATOR + "test.txt");
    //BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    // 備注上面這個初始化過程就是多次使用包裝來完成的,不推薦這么寫,會讓新手看不懂。

    //1、獲得子節輸入流
    FileInputStream fileInputStream=new FileInputStream(file);
    //2、構造轉換流(是繼承Reader的)
    InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream);
    //3、 構造緩沖字符流
    BufferedReader bufferedReader=new BufferedReader(inputStreamReader);


    //備注1、2兩步驟體現出了適配器模式
    //2步驟體現了InputStreamReader類具有將子節輸入流轉換為字符輸入流的功能
    //2、3兩步驟體現了裝飾模式(wrapper包裝模式)

}

io中的適配器模式

由於InputStream是字節流不能享受到字符流讀取字符那么便捷的功能,因此借助
InputStreamReader將其轉為Reader子類,因此可以擁有便捷操作文本文件方法。
OutputStream同理。

適配器模式

//TODO

io中的裝飾(包裝)模式

將InputStream字節流包裝為BufferedReader過程就裝飾的過程。一開始
InputStream只有read一個字節的方法,包裝為Reader之后擁有read一個字符的功
能,在包裝成BufferedReader之后就擁有read一行字符串功能。OutputStream同理

裝飾模式

//TODO

總結

java io流操作對於新手來說可能看到有那么多接口、抽象類、和類可能會不知道從何下
手,我個人的見解是理解好面向對象(對IO流接口、類的層次結構理清楚)、弄清楚源和
目標(輸入和輸出方向)、以及裝飾和適配器模式那么掌握好io流操作並不會很難。相比
於並發而言io算容易的哈。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM