第9章+文件(課件)-+《算法與程序設計-C#》同步教學(清華大學版)_第1頁
第9章+文件(課件)-+《算法與程序設計-C#》同步教學(清華大學版)_第2頁
第9章+文件(課件)-+《算法與程序設計-C#》同步教學(清華大學版)_第3頁
第9章+文件(課件)-+《算法與程序設計-C#》同步教學(清華大學版)_第4頁
第9章+文件(課件)-+《算法與程序設計-C#》同步教學(清華大學版)_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

C#程序設計

第9章

文件基本內容磁盤操作流目錄操作文件操作本章目標了解System.IO命名空間中的常用類掌握File類和Directory類的使用掌握FileInfo類和DirectoryInfo類的使用掌握文件的基本操作掌握目錄的基本操作了解流操作類掌握文件流類的使用掌握如何對文本文件進行寫入與讀取課堂討論什么是文件?什么是流?-文件可以看作是數據的集合,一般保存在磁盤或其他存儲介質上。-流提供一種向后備存儲寫入字節和從后備存儲讀取字節的方式。打開、讀取、寫入、改變當前位置、關閉磁盤的基本操作DriveInfo類提供方法和屬性以查詢驅動器信息。使用DriveInfo類可以確定可用的驅動器及其類型;確定驅動器的容量和可用空閑空間等C:\Fixed或CDRom別名基本內容磁盤操作流目錄操作文件操作目錄和路徑操作Directory類提供了創建、移動和查找目錄的許多靜態方法。靜態方法

功能描述Move(stringsourceFileName[源文件],stringdestFileName)將文件或目錄及內容移到新位置;Delete(string,bool)刪除指定目錄Exists(stringpath)檢查指定文件夾在磁盤上是否存在CreateDirectory創建指定路徑中的所有目錄GetFiles返回指定目錄中的文件名稱SetCurrentDirectory將應用程序當前工作目錄設為指定目錄必須是在同一個根目錄下相當于將該目錄下的子目錄添加到目標目錄;源目錄必須存在需要傳入路徑字符串作為參數目錄和路徑操作DirectoryInfo類實例方法多次重用某個對象時,使用DirectoryInfo類的實例方法實例方法MoveToDeleteGetDirectoriesCreate()GetFiles無參數DirectoryInfod=newDirectoryInfo(路徑字符串);遍歷子文件和子文件夾基本內容磁盤操作流目錄操作文件操作文件的基本操作(File和FileInfo)File類封裝了文件基本的操作,包括創建、復制、移動、重命名和刪除文件等;File類所有的方法是靜態方法FileInfo類提供的是實例方法,作用及包含的屬性和方法都與File類相似FileStreamf=File.Create(path);FileInfofi=newFileInfo(path);FileStreamf=fi.Create();Path為創建的目錄路徑適用于對文件執行一次操作適用于對目錄路徑執行多次操作會將原來的文件覆蓋System.IO命名空間3-1File對象靜態方法

MoveDeleteCopyCreateTextOpenTextOpen復制和移動的目標不能是目錄文件必須先關閉System.IO命名空間3-2試一試:把f:\temp\test1.txt文件拷貝到C:\下以a.txt命名,怎么實現?stringpath1=@"f:\temp\test1.txt

";FileInfofi=newFileInfo(path1);fi.CopyTo(@"c:\a.txt");基本內容磁盤操作流目錄操作文件操作Stream類在.NET中,輸入/輸出操作是由“流”來處理的流提供一種向后備存儲寫入字節和從后備存儲讀取字節的方式注意:.NET框架中,與基本輸入/輸出操作相關的類都位于命名空間System.IO中。什么是流?流流是一個用于傳輸數據的對象,數據的傳輸有兩個方向:如果數據從外部源傳輸到程序中,這就是讀取流;如果數據從程序傳輸到外部數據源,這就是寫入流。對于文件出的讀寫,最常用的兩個類如下:FileStream(文件流):這個類主要用于在二進制文件中讀寫二進制數據---也可以使用它讀寫任何文件;StreamReader(流讀取器)和StreamWriter(流寫入器):這兩個類是專門用于讀寫文本文件的。StreamWriterStreamWriter的構造函數有多個:最簡單的構造函數只帶一個文件名參數:把StreamWriter關聯到FileStream上,以獲得打開文件更多的控制選項:

通過File獲得StreamWriter

FileStreamfs=newFileStream(path,FileMode.Create,FileAccess.Write,FileShare.Read);StreamWritersw=newStreamWriter(fs);StreamWritersr=File.CreateText(path);StreamWritersr=newStreamWriter(path);StreamReaderStreamReader的構造函數有多個:最簡單的構造函數只帶一個文件名參數:

如果指定編碼方法:

StreamReadersr=newStreamReader(path);StreamReadersr=newStreamReader(path,Encoding.UTF8);StreamReaderStreamReader的構造函數有多個:把StreamReader關聯到FileStream上,可以顯式指定是否創建文件和共享許可:

從一個File中獲得StreamReader

FileStreamfs=newFileStream(path,FileMode.Open,FileAccess.Read,FileShare.None);StreamWritersw=newStreamWriter(fs);StreamReadersr=File.OpenText(path);FileStream類FileStream類提供對文件進行打開、讀取、寫入、關閉等操作,既支持同步讀寫操作,也支持異步讀寫操作。獲取FileStream對象的常用方法File.Creat(fileName)File.OpenRead(fileName)File.Open()File.OpenWrite(filleName)使用File類絕對或相對路徑FileStream的構造函數三種重載方法FileStream類構造FileStream需要四條信息:

1、要訪問的文件;

2、如何打開文件的模式:FileMode3、訪問文件的方式:FileAcsess4、定義在文件共享時的選項:FileShare。FileStreamfs=newFileStream(

path,

FileMode.Create,FileAccess.Write,

FileShare.Read);FileStream已重寫構造函數FileStream(stringFilePath,FileMode)FileStream(stringFilePath,FileMode,FileAccess)FileStream(stringFilePath,FileMode,FileAccess,FileShare)FileMode、FileAccess和FileShare參數都是enum類型

FileStream試一試:文件的寫操作fs.write(byteArray,startIndex,lengh);說明:Fs為FileSteam的實例;

byteArray:提供數據的字節數組startIndex:從數組的哪個下標位置開始寫Length:寫入多少字節fs.WriteByte()說明:把一個字節寫入流.bytenextByte=100;fs.WriteByte(nextByte);FileStream試一試:文件的讀操作fs.Read(byteArray,Pos,n);說明:Fs為FileSteam的實例;

byteArray:讀取數據存放在byteArray數組中Pos

:把從流fs中讀取的數據從字節數組的第Pos個位置開始存n:每次從fs中讀取的字節數ReadByte()說明:從流中讀取一個字節,把結果轉換成一個0~255之間的整數,如果達到流的末尾,就返回-1.intNextByte=fs.ReadByte();實際讀取的字節數小于等于該參數返回整數值:實際讀取的字節數二進制文件的讀寫寫操作publicBinaryWrit

溫馨提示

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

評論

0/150

提交評論