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算容易的哈。
