VB文件處理和系統操作_第1頁
VB文件處理和系統操作_第2頁
VB文件處理和系統操作_第3頁
VB文件處理和系統操作_第4頁
VB文件處理和系統操作_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章文件處理和系統操作主編:夏敏捷教學目標掌握使用Directory、File、Path類操作文件及目錄了解使用FileStream類讀寫文件掌握使用StreamReader、StreamWriter類讀寫文本文件掌握使用BinaryReader、BinaryWriter類讀寫二進制文件。目錄6.1文件夾和文件管理6.2文件的讀寫6.3處理鼠標和鍵盤事件6.1文件夾和文件管理6.1.1System.IO命名空間System.IO命名空間基本包含了與所有I/O操作有關的30個類,其中常用的類包括以下幾種:Directory類:提供多個對目錄和子目錄進行創建、移動和枚舉的靜態方法。DirectoryInfo類:提供多個對目錄和子目錄進行創建、移動和枚舉的實例方法。File類:提供用于創建、復制、刪除、移動和打開文件的靜態方法,并協助創建FileStream類對象。6.1.1目錄(文件夾)管理在System.IO命名空間下,有DirectoryInfo類和Directory類這兩個類對磁盤和目錄(文件夾)進行操作管理。兩者區別在于前者必須被實例化后才能使用,而后者則只提供了靜態的方法。如果多次使用某個對象一般使用前者;如果僅執行某一個操作則使用后者提供的靜態方法效率更高一些。由于功能相同,所以這里僅介紹Directory類。Directory類既可以用來復制、移動、重命名、創建和刪除目錄,也可用來獲取和設置與目錄的創建、訪問及寫入操作相關的時間信息。6.1.1目錄(文件夾)管理6.1.1目錄(文件夾)管理【例6-1】獲取本地所有磁盤控制臺應用程序實例。【例6-2】獲取C盤根目錄下的所有子目錄控制臺應用程序實例。【例6-4】創建并刪除指定的目錄的控制臺應用程序實例。6.1.2文件管理文件管理指的是創建、復制、刪除、移動和打開文件,以及獲取和設置文件屬性或有關文件創建、訪問及寫入操作的時間信息等操作。在VisualBasic.NET中,有File類和FileInfo類用于管理文件。1.File類6.1.2文件管理文件管理指的是創建、復制、刪除、移動和打開文件,以及獲取和設置文件屬性或有關文件創建、訪問及寫入操作的時間信息等操作。在VisualBasic.NET中,有File類和FileInfo類用于管理文件。1.File類6.1.2文件管理2.FileInfo類與File類相同功能的是FileInfo類。但FileInfo類必須實例化,并且每個FileInfo的實例必須對應于系統中一個實際存在的文件。6.1.3文件夾瀏覽器實現【例6-6】實現如圖6-1的類似Windows文件夾瀏覽器6.2文件的讀寫根據數據的編碼,文件可以分為文本文件和二進制文件。根據不同類型的文件,訪問數據的方式也不相同。VisualBasic.NET中傳統VB訪問文件的函數仍然可用。訪問不同文件基本操作步驟是相同的,一般都須經過以下三步完成。首先打開文件,如果文件不存在應先創建文件。當文件打開后,就可以對文件進行讀或寫操作了。當文件操作完畢,應該關閉文件。6.2文件的讀寫從根本上講文件都是由字節或標準字符存儲的,為了以統一的方式處理文件,VisualBasic.NET中引入“流”的概念。流是字節序列的抽象概念。對于文件的讀寫,最常用的類簡單介紹如下:Stream類:流的基類,定義流的基本操作。FileStream類:用于對文件執行讀寫操作,支持同步和異步讀寫。MemoryStream類:無緩存的流,該流以內存作為數據流。NetWorkStream類:以網絡為數據源的流,可以通過此流發送或接收網絡數據。TextReader類:StreamReader對象的抽象基類,定義基本字符讀取操作。TextWriter類:StreamWriter對象的抽象基類,定義基本字符寫入操作。StreamWriter類:向流寫入字符。StreamReader類:實現從流讀取字符操作。6.2.1FileStream類讀寫文件FileStream類用來對文件系統上的文件進行讀取、寫入、打開和關閉等操作。由于FileStream類能夠對輸入輸出進行緩沖,因而處理性能比較高。FileStream類的成員函數都是非靜態的,需要通過FileStream類的實例對象對文件中的數據進行讀寫。其中FileStream類的2個的構造函數使用如下所示:Dimfs1AsNewFileStream("c:\temp\MyTest.txt",FileMode.Create)Dimfs2AsNewFileStream("c:\temp\MyTest.txt",FileMode.Create,FileAccess.Write)6.2.1FileStream類讀寫文件FileStream類中提供了許多可以進行文件讀寫的實例方法。(2)ReadByte()方法ReadByte()方法是讀取數據的最簡單的方式,它從流中讀取一個字節,并把這個字節轉換為一個0到255之間的整數。如果到達該流的末尾,就返回–1。DimnextByteAsByte=fs.ReadByte()fs為FileStream類的一個實例對象。(3)Read()方法可以調用Read()方法一次讀取多個字節,它可以把特定數量的字節讀入到一個數組中。Read()方法返回實際讀取的字節數。如果返回值是0,就表示已經到達了流的尾端。'一次讀入100個字節DimnAsIntegerDimnBytesRead(100)AsByten=fs.Read(nBytesRead,0,100)Read()的第一個參數是一個byte類型的數組;第二個參數是一個偏移值,使用它可以要求Read讀取的數據存放是從數組的某個元素開始,而不是從第一個元素開始;第三個參數是最多讀取的字節數。6.2.1FileStream類讀寫文件(4)WriteByte()和Write()方法可以使用方法WriteByte()和Write()給文件寫入數據。WriteByte()方法把一個字節數據寫入流:DimnextByteAsByte=50fs.WriteByte(nextByte)'寫入一個字節數據(5)Flush()方法使用流完成所有寫操作之后,應清除該流的所有緩沖區,并把緩沖區中的數據寫入到文件中去,避免數據遺失。這個操作使用Flush()方法完成。fs.Flush()(6)Close()方法使用完一個流后,就應關閉它,關閉流使用Close()方法。fs.Close()【例6-7】用FileStream類編寫一個保存和顯示文件的程序,程序的設計界面如圖6.2.1FileStream類讀寫文件6.2.2文本文件的讀寫

理論上,可以使用FilStream類讀取和顯示文本文件。但通常使用StreamReader和StreamWriter類來更方便地讀取它們。這是因為這兩個類工作的級別比較高,特別適合于讀取文本。它們的成員函數StreamReader.ReadLine()和StreamWriter.WriteLine()可以一次讀寫一行文本。在讀取文件時,流會自動確定下一個回車符的位置,并在該處停止讀取,在寫入文件時,流會自動把回車符和換行符添加到文本的末尾。【例6-8】用StreamReader和StreamWriter類讀寫文本文件的控制臺應用程序實例。6.2.2文本文件的讀寫

理論上,可以使用FilStream類讀取和顯示文本文件。但通常使用StreamReader和StreamWriter類來更方便地讀取它們。這是因為這兩個類工作的級別比較高,特別適合于讀取文本。它們的成員函數StreamReader.ReadLine()和StreamWriter.WriteLine()可以一次讀寫一行文本。在讀取文件時,流會自動確定下一個回車符的位置,并在該處停止讀取,在寫入文件時,流會自動把回車符和換行符添加到文本的末尾。【例6-8】用StreamReader和StreamWriter類讀寫文本文件的控制臺應用程序實例。【例6-9】建立一個通訊錄程序,運行結果如圖6-5所示。6.2.3二進制文件的讀寫

二進制文件數據使用BinaryReader類和BinaryWriter類實現讀寫操作。讀二進制文件通過BinaryReader類實現,可以把原始數據類型的數據讀取為具有特定編碼格式的二進制數據。BinaryWriter類可以把原始的數據類型的數據寫入流中,并且它還可以寫入具有特定編碼格式的字符串。6.2.3二進制文件的讀寫【例6-10】實現文件分割合并器程序(如圖6-6所示)。6.2.3二進制文件的讀寫2.BinaryWriter類6.3處理鼠標和鍵盤事件在程序運行中,產生事件的主體有很多,其中尤其以鍵盤和鼠標為最多。6.3.1處理鼠標相關的事件鼠標相關的事件大致有六種,分別是:“MouseHover”、“MouseLeave”、“MouseEn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論