首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java IO 學習總結:流庫能力、裝飾器模式、格式化缺憾與設計權衡

     編輯:Java 相關知識

Java IO 流庫滿足基本需求:可透過主控台、檔案、記憶體區塊甚至網際網路(第 15 章)讀寫。可繼承 InputStream/OutputStream 建立新輸入輸出物件型別。向預期字串的方法傳物件時,Java 限制「自動型別轉換」會自動呼叫 toString(),可重新定義擴展流能接納的物件種類。

未解決問題與缺憾

  • 開啟檔案輸出時,無法指定「檔案存在則拋例外」——某些系統允許以「唯一建立」模式開啟輸出檔。Java 中需用 File 物件先判斷存在性,否則 FileOutputStream/FileWriter 直接覆蓋。
  • 同時指定檔案與目錄路徑時,File 類別設計缺陷暴露:「單一類別別做太多事」!

裝飾器模式學習門檻

IO 流庫易混淆概念。確能做很多事且可移植,但若未吃透裝飾器模式,設計皆帶盲目性。學習與教學都須花功夫。且不完整:無輸出格式化支援,幾乎所有語言 IO 包皆有此功能(Java 1.1 未糾正,錯失改良良機,反增特殊情況提高複雜度)。Java 1.1 仍沿用舊 IO 庫而非新庫,庫設計者未明確標示棄用與首選特性,造成頻繁棄用警告。

掌握後的價值

一旦掌握裝飾器模式並在靈活環境使用,便能認識此設計優點。到時為此多付出的代碼行不至讓你太生氣。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved