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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C#程序設(shè)計(jì)

第9章

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

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

MoveDeleteCopyCreateTextOpenTextOpen復(fù)制和移動(dòng)的目標(biāo)不能是目錄文件必須先關(guān)閉System.IO命名空間3-2試一試:把f:\temp\test1.txt文件拷貝到C:\下以a.txt命名,怎么實(shí)現(xiàn)?stringpath1=@"f:\temp\test1.txt

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

通過File獲得StreamWriter

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

如果指定編碼方法:

StreamReadersr=newStreamReader(path);StreamReadersr=newStreamReader(path,Encoding.UTF8);StreamReaderStreamReader的構(gòu)造函數(shù)有多個(gè):把StreamReader關(guān)聯(lián)到FileStream上,可以顯式指定是否創(chuàng)建文件和共享許可:

從一個(gè)File中獲得StreamReader

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

1、要訪問的文件;

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

path,

FileMode.Create,FileAccess.Write,

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

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

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

byteArray:讀取數(shù)據(jù)存放在byteArray數(shù)組中Pos

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論