[零] JavaIO入門簡介 程式設計語言 為什麼需要IO庫
阿新 • • 發佈:2018-12-27
(1) 建立檔案。 在建立一個新檔案時,系統首先要為新檔案分配必要的外存空間,並在檔案系統的目錄中,為之建立一個目錄項。 目錄項中應記錄新檔案的檔名及其在外存的地址等屬性。 |
(2) 刪除檔案。 當已不再需要某檔案時,可將它從檔案系統中刪除。在刪除時,系統應先從目錄中找到要刪除檔案的目錄項,使之成為空項,然後回收該檔案所佔用的儲存空間。 |
(3) 讀檔案。
在讀一個檔案時,須在相應系統呼叫中給出檔名和應讀入的記憶體目標地址。此時,系統同樣要查詢目錄,找到指定的目錄項,從中得到被讀檔案在外存中的位置。在目錄項中,還有一個指標用於對檔案的讀/寫。 |
(4) 寫檔案。 在寫一個檔案時,須在相應系統呼叫中給出該檔名及該檔案在記憶體中的(源)地址。 為此,也同樣須先查詢目錄,找到指定檔案的目錄項,再利用目錄中的寫指標進行寫操作。 |
(5) 截斷檔案。 如果一個檔案的內容已經陳舊而需要全部更新時,一種方法是將此檔案刪除,再重新建立一個新檔案。 但如果檔名及其屬性均無改變時,則可採取另一種所謂的截斷檔案的方法,此即將原有檔案的長度設定為0,或者說是放棄原有的檔案內容。 |
(6) 設定檔案的讀/寫位置。
前述的檔案讀/寫操作都只提供了對檔案順序存取的手段,即每次都是從檔案的始端讀或寫。 |
檔案的開啟和關閉
當前OS所提供的大多數對檔案的操作, 其過程大致都是這樣兩步:
第一步是通過檢索檔案目錄來找到指定檔案的屬性及其在外存上的位置;
第二步是對檔案實施相應的操作,如讀檔案或寫檔案等。
當用戶要求對一個檔案實施多次讀/寫或其它操作時,每次都要從檢索目錄開始。
為了避免多次重複地檢索目錄,在大多數OS中都引入了“開啟”(open)這一檔案系統呼叫
當用戶第一次請求對某檔案進行操作時,先利用 open系統呼叫將該檔案開啟。 |
程式設計中的IO
所以,我們現在可以確定,對於系統中的程式和資料的管理,都是作業系統幫助我們進行管理的 應用程式中對檔案的操作,也都是請求作業系統 I/O 含義為 in 和 out,也就是 入 和 出,計算機世界裡,一般指代的是input 和output ,也就是輸入和輸出. 所有的應用程式都是工作在使用者態,可是所有的系統資源都是作業系統管理,也就是核心態 所以說,應用程式的輸入輸出,必須要依賴作業系統. 作業系統本身就是一種高層次的抽象,他負責管理檔案,檔案本身也是一種抽象. 如上圖所示 作為應用程式設計師,我們都是工作在應用程式層 我們會使用某種程式設計語言,編寫我們自己的應用程式 程式設計語言給我們提供了IO類庫以便更高效的進行程式編寫 IO類庫通過呼叫作業系統提供的檔案系統呼叫介面來完成最終的功能IO不僅僅是跟作業系統打交道
作為開發者,我們可能不僅僅會通過作業系統 讀取或者寫入 資料.檔案. 我們還極其可能會對我們讀取的檔案資料進行操作,而且,事實上我們幾乎不會單純的從作業系統讀寫資料 我們也可能從其他來源獲得資料,組裝資料,這些都是程式設計中的IO要做的事情也就是說程式語言中的IO 不僅僅要解決溫飽問題(通過作業系統讀取檔案) 還要解決奔小康的問題(能夠對各種來源,各種資料檔案 更便捷的進行操作) |
邏輯功能使用上需要盡最大可能的照顧到開發者 |
實現上儘可能的高效 |