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

提取代碼列表工具:書本原始碼自動打包與跨平台分發系統

     編輯:Java 相關知識

工具設計背景與標記規範

本書每個完整代碼列表以特殊註釋標記起始(//:)與結束(///:~),便於自動提取至相容源碼檔案。前作採用自動合併測試代碼入書,本書採測試後貼入書內、內部編輯代碼。關鍵問題:如何提取並測試代碼?本工具即為關鍵。展示 String 類別眾多特性,解決文字處理問題。

雙模式運作機制

提取模式(-p 旗標):檢查包含書本 ASCII 文字的輸入檔,遍歷依註釋標記提取代碼,首行檔名決定建立檔案名。檢查 package 陳述依路徑選擇目錄。追蹤套件名監視章節變化(套件以 c02/c03... 開頭標記章節,com 開頭忽略),每章第一個代碼列表含 package 即知章節變更,後續檔案置入新子目錄。
釋放模式(無 -p):輸入「打包」檔案,提取釋放為獨立檔案。打包檔採用 DataOutputStream 保證「無論數據來自何機器,使用 DataInputStream 收取即可用本機正確格式儲存」,解決跨平台換行符等差異。每子目錄放入空檔案,檔名指明該目錄應有檔案數,作為安全檢查。

核心類別架構

Pr/IO:支援工具類,錯誤處理退出、檔案建立封裝(BufferedReader/DataOutputStream/PrintWriter 統一開啟/關閉)。
SourceCodeFile:代表單一源碼檔案資訊(內容、檔名、目錄)。含標記常數(起始/結束/打包標記/換行符/路徑分隔符)、版權聲明(讀取 Copyright.txt)。兩建構子:從文件檔解析(處理 package 陳述提取章節、轉換路徑、續段處理、結束標記檢查)、從打包檔恢復(提取舊分隔符替換為本地適用符號)。提供 writePacked() 寫入打包檔、writeFile() 生成實際 Java 源碼檔(File.mkdirs() 建立完整目錄路徑)。
DirMap:多重映射(Hashtable 鍵為子目錄,值為 SourceCodeFile Vector),實現目錄層級組織。add() 自動建立 Vector 關聯、writePackedFile() 寫入打包檔(首行寫入舊分隔符資訊)、write() 寫入實際檔案並生成檔案計數檢查檔。
CodePackager:主程式,解析命令列參數判斷模式,協調提取/釋放流程。

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