版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄上機(jī)及測驗(yàn)安排5月6號:11周,周一56節(jié),第11章實(shí)驗(yàn)二(地點(diǎn):機(jī)電樓D306)5月9號:11周,周四56節(jié),第11章實(shí)驗(yàn)三、四(地點(diǎn):機(jī)電樓D306)5月13號:11周,周一56節(jié),模擬考試(開卷,地點(diǎn):教學(xué)樓B座407)5月16號:12周,周四56節(jié),上機(jī)小測(開卷,地點(diǎn):機(jī)電樓D306)目錄第9章文件操作9.1File類和FileInfo類9.2Directory類和DirectoryInfo類*9.3FileStream類9.4
文本文件讀寫9.5二進(jìn)制文件的讀寫*9.6序列化與反序列化*9.7C#讀寫EXCEL文件編程9.8綜合應(yīng)用9.0
文件操作相關(guān)的基本概念基本概念流(stream):一系列數(shù)據(jù)元素的順序序列。流通常是單向的,即只能用于讀取或?qū)懭霐?shù)據(jù),而不是同時(shí)進(jìn)行讀寫。流的核心思想是,它將數(shù)據(jù)的傳輸抽象為一個(gè)連續(xù)的數(shù)據(jù)流。文件流(FileStream):是C#中用于與文件進(jìn)行交互的一種流。它提供了一種在文件中讀取和寫入數(shù)據(jù)的方式,允許你直接對文件進(jìn)行操作,而不必一次性將整個(gè)文件加載到內(nèi)存中。常用的文件操作類(都在System.IO命名空間):File類和FileInfo類:操作文件——?jiǎng)?chuàng)建、復(fù)制、刪除、移動(dòng)、打開文件;Directory類和DirectoryInfo類*:操作目錄——?jiǎng)?chuàng)建刪除和移動(dòng)目錄;StreamReader、StreamWriter類:文本文件讀寫——與文件系統(tǒng)中的文件進(jìn)行交互,讀寫文件內(nèi)容;BinaryReader和BinaryWriter*:二進(jìn)制文件讀寫Path類*:操作路徑字符串——獲取路徑信息、文件名、擴(kuò)展名。9.1
File類和FileInfo類File類和FileInfo類File類:是System.IO命名空間中的一個(gè)靜態(tài)類,用于執(zhí)行文件操作。它提供了一組靜態(tài)方法,允許你在不創(chuàng)建文件對象的情況下直接對文件進(jìn)行讀寫、創(chuàng)建、復(fù)制、移動(dòng)和刪除等操作。方法說明Create()在指定路徑中創(chuàng)建文件Copy()文件復(fù)制Delete()刪除指定文件Move()移動(dòng)文件Replace()文件替換Open()打開指定路徑上的FileStreamExists()確定指定路徑上的文件是否存在CreateText()創(chuàng)建或打開一個(gè)文件,用于寫入U(xiǎn)TF-8編碼的文本OpenText()打開現(xiàn)有UTF-8編碼文件進(jìn)行讀取OpenRead()打開現(xiàn)有文件進(jìn)行讀取OpenWrite()打開現(xiàn)有文件進(jìn)行寫入9.1
File類和FileInfo類File類和FileInfo類方法說明GetCreationTime()獲取指定文件或目錄的創(chuàng)建日期和時(shí)間GetLastAccessTime()獲取最后訪問文件或目錄的日期和時(shí)間GetLastWriteTime()獲取最后寫入文件或目錄的日期和時(shí)間SetCreationTime()設(shè)置創(chuàng)建該文件的日期和時(shí)間SetLastAccessTime()設(shè)置最后訪問只當(dāng)文件的日期和時(shí)間SetLastWriteTime()設(shè)置最后寫入文件的日期和時(shí)間ReadAllBytes()打開一個(gè)文件,將文件的內(nèi)容讀入一個(gè)字符串,然后關(guān)閉文件ReadAllLines()打開一個(gè)文件,將文件所有行讀入一個(gè)字符串?dāng)?shù)組,然后關(guān)閉文件ReadAllText()打開一個(gè)文件,將文件所有行讀入一個(gè)字符串,然后關(guān)閉文件WriteAllBytes()創(chuàng)建一個(gè)新文件,在其中寫入指定的字節(jié)數(shù)組,然后關(guān)閉文件。若文件存在,則直接改寫,然后關(guān)閉文件。WriteAllLines()創(chuàng)建一個(gè)新文件,在其中寫入指定的行,然后關(guān)閉文件。若文件存在,則直接改寫,然后關(guān)閉文件。WriteAllText()創(chuàng)建一個(gè)新文件,在其中寫入指定的字符串,然后關(guān)閉文件。若文件存在,則直接改寫,然后關(guān)閉文件。9.1
File類和FileInfo類File類和FileInfo類實(shí)例1:創(chuàng)建新文件并寫入內(nèi)容usingSystem;usingSystem.IO;classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";stringcontent="Hello,thisisanexamplecontent.";try{
File.WriteAllText(filePath,content);Console.WriteLine("Filecreatedandcontentwrittensuccessfully.");}catch(Exceptionex){Console.WriteLine($"Error:{ex.Message}");}}}//////逐字字符串字面量,忽略轉(zhuǎn)義字符//寫入文件9.1
File類和FileInfo類File類和FileInfo類實(shí)例2:讀取文件內(nèi)容classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";try{stringcontent=File.ReadAllText(filePath);Console.WriteLine("Filecontent:");Console.WriteLine(content);}catch(Exceptionex){Console.WriteLine($"Error:{ex.Message}");}}}//////讀取文件內(nèi)容到字符串9.1
File類和FileInfo類File類和FileInfo類實(shí)例3:復(fù)制文件classProgram{staticvoidMain(){stringsourceFilePath=@"C:\ExampleFolder\source.txt";stringdestinationFilePath=@"C:\ExampleFolder\destination.txt";try{
File.Copy(sourceFilePath,destinationFilePath);Console.WriteLine("Filecopiedsuccessfully.");}catch(Exceptionex){Console.WriteLine($"Error:{ex.Message}");}}}//////復(fù)制文件到指定目錄9.1
File類和FileInfo類File類和FileInfo類實(shí)例4:移動(dòng)文件classProgram{staticvoidMain(){stringsourceFilePath=@"C:\ExampleFolder\source.txt";stringdestinationFilePath=@"C:\ExampleFolder\destination.txt";try{
File.Move(sourceFilePath,destinationFilePath);Console.WriteLine("Filemovedsuccessfully.");}catch(Exceptionex){Console.WriteLine($"Error:{ex.Message}");}}}//////當(dāng)目錄相同時(shí),相當(dāng)于重命名9.1
File類和FileInfo類File類和FileInfo類實(shí)例5:刪除文件classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";try{
File.Delete(filePath);Console.WriteLine("Filedeletedsuccessfully.");}catch(Exceptionex){Console.WriteLine($"Error:{ex.Message}");}}}//////9.1
File類和FileInfo類File類和FileInfo類FileInfo類:是System.IO命名空間中的一個(gè)實(shí)例化類,用于執(zhí)行文件操作。它提供了一組實(shí)例方法和屬性,允許你在不創(chuàng)建文件對象的情況下直接對文件進(jìn)行讀寫、創(chuàng)建、復(fù)制、移動(dòng)和刪除、獲得文件信息等操作。相對File靜態(tài)類而言,許多方法本質(zhì)上基本相同,但由于實(shí)例化后是對象,通過對象的方法來調(diào)用,方法的使用語法上或多或少有點(diǎn)差異(如文件復(fù)制CopyTo()、文件移動(dòng)MoveTo()),且FileInfo類將File類中的一些方法變成了屬性。如果只需要執(zhí)行簡單的文件操作,并且不需要處理特定文件實(shí)例的詳細(xì)信息,那么File類可能更適合。但如果需要獲取文件的詳細(xì)信息,并執(zhí)行與特定文件實(shí)例相關(guān)的操作,那么FileInfo類更合適。9.1
File類和FileInfo類File類和FileInfo類FileInfo類:是System.IO命名空間中的一個(gè)實(shí)例化類,用于執(zhí)行文件操作。它提供了一組靜態(tài)方法,允許你在不創(chuàng)建文件對象的情況下直接對文件進(jìn)行讀寫、創(chuàng)建、復(fù)制、移動(dòng)和刪除等操作。常用方法說明CopyTo()將文件復(fù)制到指定路徑MoveTo()將文件移動(dòng)到指定路徑Delete()刪除文件OpenRead()以只讀方式打開文件的FileStream對象OpenWrite()以寫入方式打開文件的FileStream對象ReadAllText()讀取文件的所有文本內(nèi)容WriteAllText()將指定的文本內(nèi)容寫入文件9.1
File類和FileInfo類File類和FileInfo類FileInfo類:常用屬性說明Name獲取文件名Length獲取文件的大小(以字節(jié)為單位,返回long類型值)FullName獲取目錄或文件的完整描述IsReadOnly獲取或設(shè)置當(dāng)前文件是否為只讀的值LastAccessTime獲取或設(shè)置最后訪問當(dāng)前目錄或文件的時(shí)間LastWriteTime獲取或設(shè)置最后寫入當(dāng)前目錄或文件的時(shí)間Exists獲取當(dāng)前文件是否存在的值Extension獲取文件擴(kuò)展名Directory獲取當(dāng)前文件的目錄名DirectoryName獲取當(dāng)前文件的目錄名,且這個(gè)屬性是只讀的9.1
File類和FileInfo類File類和FileInfo類實(shí)例1:創(chuàng)建FileInfo對象并訪問文件屬性staticvoidMain(string[]args){stringfilePath=@"E:\CSAPP\HelloWorld\Program.cs";try{
FileInfofileInfo=newFileInfo(filePath);Console.WriteLine($"FileName:{fileInfo.Name}");Console.WriteLine($"FileExtension:{fileInfo.Extension}");Console.WriteLine($"FileDirectory:{fileInfo.Directory}");Console.WriteLine($"FileDirectoryName:{fileInfo.DirectoryName}");Console.WriteLine($"FileFullName:{fileInfo.FullName}");Console.WriteLine($"FileSize:{fileInfo.Length}bytes");Console.WriteLine($"FileCreationTime:{fileInfo.CreationTime}");Console.WriteLine($"FileLastAccessTime:{fileInfo.LastAccessTime}");Console.WriteLine($"FileLastWriteTime:{fileInfo.LastWriteTime}");}catch(Exceptionex){Console.WriteLine($"Error:{ex.Message}");}}//////9.1
File類和FileInfo類File類和FileInfo類實(shí)例1:創(chuàng)建FileInfo對象并訪問文件屬性classProgram{staticvoidMain(){stringsourceFilePath=@"C:\ExampleFolder\source.txt";stringdestinationFilePath=@"C:\ExampleFolder\destination.txt";try{
FileInfosourceFile=newFileInfo(sourceFilePath);FileInfodestinationFile=newFileInfo(destinationFilePath);
sourceFile.CopyTo(destinationFilePath,true);Console.WriteLine("Filecopiedsuccessfully.");}catch(Exceptionex){Console.WriteLine($"Error:{ex.Message}");}}}//////9.3
FileStream類FileStream類FileStream類:用于與文件進(jìn)行交互的一種流,它提供了一種在文件中讀取和寫入數(shù)據(jù)的方式,允許你直接對文件進(jìn)行操作,而不必一次性將整個(gè)文件加載到內(nèi)存中。常用屬性說明CanRead獲取一個(gè)布爾值,指示當(dāng)前文件流是否支持讀取操作CanWrite獲取一個(gè)布爾值,指示當(dāng)前文件流是否支持寫入操作CanSeek獲取一個(gè)布爾值,指示當(dāng)前文件流是否支持查找操作(即設(shè)置當(dāng)前讀取/寫入位置)Length獲取文件流的長度,即文件的大?。ㄒ宰止?jié)為單位)Position獲取或設(shè)置當(dāng)前文件流的讀取/寫入位置(以字節(jié)為單位)9.3
FileStream類FileStream類常用方法:常用方法說明Read()從文件中讀取字節(jié)序列,并將其存儲(chǔ)到指定的緩沖區(qū)中。Write()將指定的字節(jié)序列寫入文件。Seek()將文件指針定位到文件中的指定位置Close()關(guān)閉文件流,并釋放文件句柄。構(gòu)造函數(shù)配置FileStream實(shí)例模式9.3
FileStream類FileStream類常用方法:FileStream構(gòu)造函數(shù):FileStream(stringpath,FileModemode):使用指定路徑和文件模式創(chuàng)建FileStream對象。文件模式可以是FileMode.Create(如果文件不存在則創(chuàng)建,如果存在則覆蓋)、FileMode.Open(打開文件)、FileMode.OpenOrCreate(打開或創(chuàng)建)、FileMode.Append(將寫入位置定位到文件末尾并追加內(nèi)容)等。FileStream(stringpath,FileModemode,FileAccessaccess):使用指定路徑、文件模式和訪問權(quán)限創(chuàng)建FileStream對象。訪問權(quán)限可以是FileAccess.Read、FileAccess.Write或FileAccess.ReadWrite。FileStream(stringpath,FileModemode,FileAccessaccess,FileShareshare):使用指定路徑、文件模式、訪問權(quán)限和共享選項(xiàng)創(chuàng)建FileStream對象。共享選項(xiàng)可以是FileShare.None(不允許其他進(jìn)程訪問文件)、FileShare.Read(允許其他進(jìn)程以只讀方式訪問文件)等。9.3
FileStream類FileStream類實(shí)例1:創(chuàng)建FileStream對象并訪問文件屬性publicclassProgram{publicstaticvoidMain(){stringfilePath=@"C:\Example\example.txt";using(FileStreamfileStream=newFileStream(filePath,FileMode.Open)){
Console.WriteLine($"CanRead:{fileStream.CanRead}");
Console.WriteLine($"CanWrite:{fileStream.CanWrite}");
Console.WriteLine($"CanSeek:{fileStream.CanSeek}");Console.WriteLine($"Length:{fileStream.Length}bytes");
Console.WriteLine($"CurrentPosition:{fileStream.Position}bytes");}}}//////創(chuàng)建一個(gè)FileStream對象(使用FileMode.Open表示打開現(xiàn)有文件)//判斷文件流是否支持讀取操作//是否支持寫入操作//是否支持查找操作//獲取文件流的長度//獲取當(dāng)前讀/寫位置9.3
FileStream類FileStream類常用方法:Read(byte[]buffer,intoffset,intcount):從文件中讀取字節(jié)序列,并將其存儲(chǔ)到指定的緩沖區(qū)中。參數(shù)buffer是存儲(chǔ)讀取數(shù)據(jù)的字節(jié)數(shù)組,offset是緩沖區(qū)中的偏移量,count是要讀取的最大字節(jié)數(shù)。usingSystem;usingSystem.IO;classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";
using
(FileStreamfs=newFileStream(filePath,FileMode.Open,FileAccess.Read)){byte[]buffer=newbyte[1024];intbytesRead=fs.Read(buffer,0,buffer.Length);//////使用FileStream打開文件(只讀模式)//創(chuàng)建一個(gè)緩沖區(qū)來存儲(chǔ)讀取的數(shù)據(jù)//使用FileStream的Read方法讀取數(shù)據(jù)到緩沖區(qū)中9.3
FileStream類FileStream類常用方法:Read(byte[]buffer,intoffset,intcount):從文件中讀取字節(jié)序列,并將其存儲(chǔ)到指定的緩沖區(qū)中。參數(shù)buffer是存儲(chǔ)讀取數(shù)據(jù)的字節(jié)數(shù)組,offset是緩沖區(qū)中的偏移量,count是要讀取的最大字節(jié)數(shù)。if(bytesRead>0){
stringcontent=System.Text.Encoding.UTF8.GetString(buffer,0,bytesRead);Console.WriteLine("Readcontent:"+content);}else{Console.WriteLine("Nodatareadfromthefile.");}}}}//如果bytesRead大于0,表示有數(shù)據(jù)被讀取//將讀取的字節(jié)轉(zhuǎn)換為字符串并輸出9.3
FileStream類FileStream類常用方法:Write(byte[]buffer,intoffset,intcount):將指定的字節(jié)序列寫入文件。參數(shù)buffer是包含要寫入文件的字節(jié)的字節(jié)數(shù)組,offset是從buffer中的哪個(gè)位置開始寫入,count是要寫入的字節(jié)數(shù)。usingSystem;usingSystem.IO;classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";stringdata="Hello,world!";
byte[]bytes=System.Text.Encoding.UTF8.GetBytes(data);using(FileStreamfs=newFileStream(filePath,FileMode.Create,FileAccess.Write)){fs.Write(bytes,0,bytes.Length);Console.WriteLine("Datawrittentothefile.");}}}//////將數(shù)據(jù)轉(zhuǎn)換為字節(jié)數(shù)組//使用FileStream打開文件(寫入模式)//使用FileStream的Write方法將數(shù)據(jù)寫入文件9.3
FileStream類FileStream類常用方法:Seek(longoffset,SeekOriginorigin):將文件指針定位到文件中的指定位置。參數(shù)offset是相對于origin參數(shù)指定的位置的偏移量,origin可以是SeekOrigin.Begin(從文件開頭)、SeekOrigin.Current(從當(dāng)前位置)或SeekOrigin.End(從文件末尾)。9.3
FileStream類FileStream類常用方法:Seek(longoffset,SeekOriginorigin):usingSystem;usingSystem.IO;classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";
using(FileStreamfs=newFileStream(filePath,FileMode.OpenOrCreate,FileAccess.ReadWrite)){
longnewPosition=fs.Seek(0,SeekOrigin.End);stringnewData="\nNewdataappendedattheend!";byte[]bytes=System.Text.Encoding.UTF8.GetBytes(newData);fs.Write(bytes,0,bytes.Length);Console.WriteLine("Newdataappendedattheendofthefile.");}}}////////將文件指針移動(dòng)到文件末尾9.3
FileStream類FileStream類常用方法:Close():關(guān)閉文件流,并釋放文件句柄。這個(gè)方法會(huì)自動(dòng)調(diào)用Flush()方法來確保所有緩沖數(shù)據(jù)都被寫入文件。*Flush():刷新文件流的緩沖區(qū),將緩沖區(qū)中的數(shù)據(jù)寫入到文件中。大多數(shù)情況下,當(dāng)文件流被關(guān)閉時(shí),系統(tǒng)會(huì)自動(dòng)執(zhí)行緩沖區(qū)的刷新操作,因此通常不需要手動(dòng)調(diào)用Flush方法。但在一些特殊情況下,如需要確保數(shù)據(jù)立即寫入到文件中時(shí),可以顯式調(diào)用Flush方法。9.3
FileStream類FileStream類常用方法:Seek(longoffset,SeekOriginorigin):usingSystem;usingSystem.IO;classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";using(FileStreamfs=newFileStream(filePath,FileMode.Create,FileAccess.Write)){stringdata="Hello,world!";byte[]bytes=System.Text.Encoding.UTF8.GetBytes(data);fs.Write(bytes,0,bytes.Length);
fs.Flush();Console.WriteLine("Datawrittentothefile.");}}}//////刷新文件流的緩沖區(qū),將數(shù)據(jù)立即寫入到文件中,相當(dāng)于手動(dòng)“保存”9.4
文本文件讀寫文本文件讀寫使用File類:讀文件File.ReadAllText():靜態(tài)方法,用于讀取文本文件的所有內(nèi)容并返回一個(gè)字符串。publicstaticstringReadAllText(stringpath);//簽名publicstaticstringReadAllText(stringpath,
Encoding
encoding);//簽名Encoding:表示字符編碼方式的枚舉類型,包含——ASCII:ASCII(美國信息交換標(biāo)準(zhǔn)代碼)編碼。UTF8:UTF-8(UnicodeTransformationFormat,8-bit)編碼。UTF16:UTF-16(UnicodeTransformationFormat,16-bit)編碼。UTF32:UTF-32(UnicodeTransformationFormat,32-bit)編碼。Unicode:Unicode編碼。等等。9.4
文本文件讀寫文本文件讀寫使用File類:讀文件File.ReadAllLines():靜態(tài)方法,用于讀取文本內(nèi)容的所有行,返回一個(gè)字符串?dāng)?shù)組,數(shù)組元素是每一行的內(nèi)容。publicstaticstringReadAllLines(stringpath);//簽名publicstaticstringReadAllLines(stringpath,
Encoding
encoding);//簽名9.4
文本文件讀寫文本文件讀寫使用File類:示例:stringstr1=File.ReadAllText(@"c:\temp\a.txt");//string[]strs1=File.ReadAllLines(@"c:\temp\a.txt");//讀取多行存入字符串?dāng)?shù)組stringstr2=File.ReadAllText(@"c:\temp\a.txt",Encoding.ASCII);//string[]strs2=File.ReadAllLines(@"c:\temp\a.txt",Encoding.ASCII);//指定編碼9.4
文本文件讀寫文本文件讀寫使用File類:寫文件File.WriteAllText():靜態(tài)方法,用于將指定的字符串內(nèi)容寫入到指定的文本文件中,如果目標(biāo)文件已經(jīng)存在,則會(huì)覆蓋原有內(nèi)容。publicstaticstringWriteAllText(stringpath,
string
contents);//簽名publicstaticstringWriteAllText(stringpath,
stringcontents,Encoding
encoding);//簽名File.WriteAllLines():靜態(tài)方法,用于將字符串?dāng)?shù)組中的每個(gè)元素作為一行寫入到指定的文本文件中。publicstaticstringWriteAllLines(stringpath,
string[]contents;//簽名publicstaticstringWriteAllLines(stringpath,
string[]contents,Encoding
encoding);//簽名9.4
文本文件讀寫文本文件讀寫使用File類:示例:stringstr1="GoodMorning!";File.WriteAllText(@"c:\temp\test\a.txt",str1);//string[]strs={"GoodMorning!","GoodAfternoon!","GoodEvening!"};File.WriteAllLines(@"c:\temp\a.txt",strs);//將字符串?dāng)?shù)組分行寫入文本文件File.WriteAllText(@"c:\temp\test\a.txt",str1,Encoding.ASCII);//File.WriteAllLines(@"c:\temp\a.txt",strs,Encoding.ASCII);//指定編碼9.4
文本文件讀寫文本文件讀寫使用StreamReader/StreamWriter類:是.NETFramework中用于文本文件讀寫的兩個(gè)重要類,它們提供了對文件的高級文本讀寫功能。StreamReader類:是.NETFramework中用于從字節(jié)流中讀取字符的類之一。StreamReader提供了一系列方法,用于從流中逐個(gè)字符、逐行或以塊的方式讀取字符數(shù)據(jù),并且支持多種字符編碼方式。StreamReader(stringpath)StreamReader(stringpath,Encodingencoding)////重載構(gòu)造函數(shù)9.4文本文件讀寫StreamReader常用方法:Read():從輸入流中讀取下一個(gè)字符,并將其作為整數(shù)返回。如果已到達(dá)輸入流的末尾,則返回-1。示例:使用StreamReader類從文件中逐個(gè)字符地讀取數(shù)據(jù),并將每個(gè)字符輸出到控制臺(tái)。在while循環(huán)中,我們使用Read()方法讀取下一個(gè)字符,直到讀取到文件末尾。9.3
FileStream類FileStream類classProgram{staticvoidMain(){stringfilePath=@"C:\ExampleFolder\example.txt";try{using(StreamReaderreader=newStreamReader(filePath)){intintValue;while((intValue=reader.Read())!=-1){
charcharValue=(char)intValue;Console.Write(charValue);}}}catch(FileNotFoundException){Console.WriteLine("Filenotfound.");}catch(IOExceptionex){Console.WriteLine("Anerroroccurredwhilereadingthefile:"+ex.Message);}}}////9.4文本文件讀寫StreamReader常用方法:Read(char[]buffer,intindex,intcount):從輸入流中讀取指定數(shù)量的字符數(shù)據(jù),并將其存儲(chǔ)到指定的字符數(shù)組中。ReadLine():從輸入流中讀取一行字符數(shù)據(jù),并返回一個(gè)字符串。如果已到達(dá)輸入流的末尾,則返回null。ReadAllLines():從文件中一次性讀取所有行,并將其存儲(chǔ)到字符串?dāng)?shù)組中ReadToEnd():從當(dāng)前位置到輸入流的末尾讀取所有字符,并以字符串形式返回它們。Close():用于關(guān)閉StreamReader對象關(guān)聯(lián)的流,并釋放與之關(guān)聯(lián)的資源。在調(diào)用Close()方法后,不再允許對流進(jìn)行讀取操作,任何后續(xù)的讀取操作都會(huì)引發(fā)ObjectDisposedException異常。通常情況下,建議在不再需要StreamReader對象時(shí)顯式調(diào)用Close()方法,以釋放資源。另外,StreamReader類實(shí)現(xiàn)了IDisposable接口,因此也可以通過使用using語句來自動(dòng)釋放資源。9.4
文本文件讀寫文本文件讀寫使用StreamReader類:示例:StreamReadersR=newStreamReader(@"c:\temp\a.txt");//intnextChar=sR.Read();//讀一個(gè)字符stringnextLine=sR.ReadLine();//讀一行stringrestOfStream=sR.ReadToEnd();sR.Close();//從當(dāng)前位置讀到最后intn=100;char[]charArray=newchar[n];intnCharsRead=sR.Read(charArray,0,n);//讀100個(gè)字符9.3
FileStream類FileStream類實(shí)例:假設(shè)已經(jīng)建立了一個(gè)data.txt文本文件,共3行記錄,每個(gè)記錄中的數(shù)據(jù)項(xiàng)用逗號分開,請讀取文件每個(gè)記錄,并輸出每個(gè)數(shù)據(jù)項(xiàng)。data.txt文本文件內(nèi)容如下:JohnDoe,25,MaleJaneSmith,30,FemaleTomBrown,22,Male9.3
FileStream類FileStream類classProgram{staticvoidMain(){stringfilePath="data.txt";//Replacewiththepathtoyourdatafiletry{using(StreamReaderreader=newStreamReader(filePath)){while(!reader.EndOfStream){stringline=reader.ReadLine();if(!string.IsNullOrEmpty(line)){string[]data=line.Split(',');stringname=data[0];intage=int.Parse(data[1]);stringgender=data[2];//ProcessthedataasneededConsole.WriteLine("Name:"+name);Console.WriteLine("Age:"+age);Console.WriteLine("Gender:"+gender);Console.WriteLine();}}}}catch(IOExceptione){Console.WriteLine("Errorreadingthefile:"+e.Message);}}}////9.4
文本文件讀寫FileStream類catch(IOExceptione){Console.WriteLine("Errorreadingthefile:"+e.Messag
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年照護(hù)服務(wù)中的糾紛醫(yī)院管理策略
- 老年氣候適應(yīng)中醫(yī)食療方案優(yōu)化
- 2026年及未來5年市場數(shù)據(jù)中國甘蔗種植行業(yè)市場競爭格局及投資前景展望報(bào)告
- 老年慢性病生活質(zhì)量提升教育
- 2026年及未來5年市場數(shù)據(jù)中國軌道交通信息系統(tǒng)行業(yè)發(fā)展監(jiān)測及投資策略研究報(bào)告
- 老年慢性病患者藥物認(rèn)知水平提升策略-1
- 2026年及未來5年市場數(shù)據(jù)中國霧化器行業(yè)市場競爭格局及投資前景展望報(bào)告
- 2026年及未來5年市場數(shù)據(jù)中國睡眠呼吸治療系統(tǒng)行業(yè)發(fā)展前景預(yù)測及投資方向研究報(bào)告
- 老年慢性病共病的語言溝通策略
- 老年慢性病共病患者健康教育的整合策略
- 2026北京海淀初三上學(xué)期期末語文試卷和答案
- 供水管道緊急搶修工程合同
- DL∕T 1993-2019 電氣設(shè)備用六氟化硫氣體回收、再生及再利用技術(shù)規(guī)范
- (正式版)HGT 20593-2024 鋼制化工設(shè)備焊接與檢驗(yàn)工程技術(shù)規(guī)范
- 肘關(guān)節(jié)恐怖三聯(lián)征
- 兒童發(fā)育遲緩的早期干預(yù)與教育策略
- 刀模管理制度
- NB-T 47013.2-2015 承壓設(shè)備無損檢測 第2部分-射線檢測
- 工程施工月報(bào)表
- GB/T 3098.6-2023緊固件機(jī)械性能不銹鋼螺栓、螺釘和螺柱
- 公司食材配送方案
評論
0/150
提交評論