Java 程式設計()  第 六章 檔案輸入/輸出運用      下一頁

 

第六章  檔案輸入與輸出運用

6-1 檔案輸入/輸出模式

內容:

  • 6-1-1 順序檔案與串流讀寫

  • 6-1-2 紀錄檔案與緩衝器讀寫

資訊系統大多需要檔案來儲存資料。當使用者輸入建立資料之後,需將所登錄的資料儲存到檔案內,下次管理資料時再由檔案讀入原來資料,如此才能管理龐大資料量。檔案是資料儲存於磁碟機的空間結構,不同的儲存結構也可能影響到資料存取效率,也需要相對應的存取方法來配合。一般資訊系統的檔案型態可區分為順序檔案與紀錄檔案兩大類,前者大多採用串流存取模式;後者大多採用緩衝器存取技巧。以下分別介紹這兩種檔案型態的特性與宣告產生方式。

6-1-1 順序檔案與串流讀寫

將資料依序寫入、讀出檔案。好像錄製錄音帶一樣,由起頭開始依序寫入磁帶,最後標示一個特殊記號表示結束,讀出時也要從頭開始順序讀取,此種儲存檔格式稱為『順序檔案』(Sequence File)。簡單的說,順序檔案允許資料以連串方式,一點一滴依序寫入磁碟檔案內,也允許一點接一點依序由檔案讀出,吾人則將此存取技巧稱之為『串流』(stream)讀寫。早期順序檔案主要是針對磁帶機的存取方式,但最近網路運用普遍,電腦之間透過網路傳輸資料,大多不喜歡資料傳輸完畢後,再執行下一步驟的處理,大多希望一邊傳輸資料,一邊處理已傳輸部分資料,資料全部傳輸完畢後,也剛好全部處理完畢。譬如,收聽網站上音樂,音樂檔案必須由網站下載到個人電腦上,再由個人電腦撥放該音樂檔案。我們當然希望一邊傳輸音樂檔案,一邊撥放該音樂,全部傳輸完畢後,也剛好收聽完畢,因此就必須利用順序格式讀取音樂檔案,這就是串流的概念。其實,網路上除了音樂檔案之外,無論是視訊、動畫、影像等等檔案也大多如此。也就是說,多媒體檔案大多採用順序檔案格式與串流存取方式,尤其透過網路傳輸也顯得需要。

6-1 串流檔案輸入/輸出物件

順序檔案是利用串流(Stream)方式,連續性的寫入或讀出。產生檔案時必須宣告它成為串流輸入/輸出檔案;另一方面,也必須將寫入檔案的記憶體資料宣告成串流型態。圖 6-1 是將 Employee.data 檔案宣告成串流輸入/輸出檔案,並產生串流輸入/輸出通道。

6-1-2 紀錄檔案與緩衝器讀寫

描述真實環境現象的資料大多有一定的規範,每樣事件大多由一筆資料記載它的屬性,此筆資料就稱為『紀錄』(Record)。記載許多事件而必須寫入磁碟檔案時,就需要一筆紀錄接一筆,將紀錄依序寫入檔案系統,此格式則稱為『紀錄檔案』(Record file)。一般作業系統為了提高效益,並不立即將紀錄寫入檔案內,而是將紀錄資料組裝成『緩衝器』(Buffer)格式,暫存於主記憶體的某一固定空間內,等待電腦較有空閒或已累積多筆『緩衝器』資料時,再一併寫入檔案(或稱磁碟機)。由檔案讀出資料也是一樣,電腦一次由磁碟檔案裡讀出多筆『緩衝器』資料(儲存於主記憶體內),再依序由『緩衝器』讀入執行中的程式。一次讀取一筆資料模式大多運用於管理資訊系統的大量資料儲存。也就是說,一般『電子化』管理系統的資料儲存大多採用記錄檔案格式與緩衝器存取模式。

簡單的說,紀錄檔案的存取都需透過緩衝器的運作,因此宣告順序檔案物件時,也須宣告緩衝器物件,並將兩者連結起來成為『程式』的輸入/輸出檔案物件。圖 6-2 為產生紀錄檔案的宣告方式,它是屬於 java.io 套件的類別。以下分別說明輸入與輸出檔案的宣告方法。

6-2 紀錄檔案輸入/輸出物件

 

翻轉工作室:粘添壽

 

Java 程式設計(二) 含物件導向

 

 

翻轉電子書系列: