C#處理文本文件TXT實(shí)例詳解
本文實(shí)例講述了C#處理文本文件TXT的方法。分享給大家供大家參考。具體分析如下:
1. 如何讀取文本文件內(nèi)容:
這里介紹的程序中,是把讀取的文本文件,用一個(gè)richTextBox組件顯示出來(lái)。要讀取文本文件,必須使用到"StreamReader"類(lèi),這個(gè)類(lèi)是由名字空間"System.IO"中定義的。通過(guò)"StreamReader"類(lèi)的"ReadLine()"方法,就可以讀取打開(kāi)數(shù)據(jù)流當(dāng)前行 的數(shù)據(jù)了。下面代碼實(shí)現(xiàn)的功能就是讀取"C:\file.txt"并在richTextBox1組件中顯示出來(lái):
FileStreamfs=newFileStream("C:\\file.txt",FileMode.Open,FileAccess.Read); StreamReaderm_streamReader=newStreamReader(fs); //使用StreamReader類(lèi)來(lái)讀取文件 m_streamReader.BaseStream.Seek(0,SeekOrigin.Begin); //從數(shù)據(jù)流中讀取每一行,直到文件的最后一行,并在richTextBox1中顯示出內(nèi)容 this.richTextBox1.Text=""; stringstrLine=m_streamReader.ReadLine(); while(strLine!=null) { this.richTextBox1.Text+=strLine+"\n"; strLine=m_streamReader.ReadLine(); } //關(guān)閉此StreamReader對(duì)象 m_streamReader.Close();
2. 如何改變文本文件中數(shù)據(jù)內(nèi)容:
下面的程序中,改變文本文件數(shù)據(jù)內(nèi)容的功能是通過(guò)改變r(jià)ichTextBox1中的內(nèi)容來(lái)實(shí)現(xiàn)的,當(dāng)richTextBox1這的內(nèi)容改變后,按動(dòng)"另存為",就把richTextBox1中內(nèi)容存儲(chǔ)到指定的文本文件中了。要想改變文本文件內(nèi)容,要使用到"StreamWriter"類(lèi),這個(gè)類(lèi) 和"StreamReader"一樣,都是由"System.IO"名字空間來(lái)定義的。通過(guò)"StreamWriter"類(lèi)的"Write()"方 法,就可以輕松實(shí)現(xiàn)文本文件內(nèi)容的更改了。下面代碼的功能是:如果"C"盤(pán)存在"file.txt",則把richTextBox1中的內(nèi)容寫(xiě)入 到"file.txt"中,如果不存在,則創(chuàng)建此文件,然后在寫(xiě)入文本數(shù)據(jù)。
//創(chuàng)建一個(gè)文件流,用以寫(xiě)入或者創(chuàng)建一個(gè)StreamWriter FileStreamfs=newFileStream("C\\file.txt",FileMode.OpenOrCreate,FileAccess.Write); StreamWriterm_streamWriter=newStreamWriter(fs); m_streamWriter.Flush(); //使用StreamWriter來(lái)往文件中寫(xiě)入內(nèi)容 m_streamWriter.BaseStream.Seek(0,SeekOrigin.Begin); //把richTextBox1中的內(nèi)容寫(xiě)入文件 m_streamWriter.Write(richTextBox1.Text); //關(guān)閉此文件 m_streamWriter.Flush(); m_streamWriter.Close();
從上面這二個(gè)代碼可以,寫(xiě)入數(shù)據(jù)比起讀取數(shù)據(jù)要顯得容易些。
3. 如何實(shí)現(xiàn)打印預(yù)覽:
打印預(yù)覽是通過(guò)打印預(yù)覽對(duì)話框來(lái)實(shí)現(xiàn)的,實(shí)現(xiàn)對(duì)讀取得文本文件的打印預(yù)覽,最為重要的就是要通知打印預(yù)覽對(duì)話框所要預(yù)覽的文件的內(nèi)容。下面代碼就是把richTextBox1中顯示的內(nèi)容,通過(guò)打印預(yù)覽對(duì)話框顯示出來(lái):
stringstrText=richTextBox1.Text; StringReadermyReader=newStringReader(strText); PrintPreviewDialogprintPreviewDialog1=newPrintPreviewDialog(); printPreviewDialog1.Document=ThePrintDocument; printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D; printPreviewDialog1.ShowDialog();
4. 如何打印文件:
在名字空間"System.Drawing.Printing"中定義了一個(gè)類(lèi)"PrintDocument",通過(guò)調(diào)用此類(lèi)的"Print"方法就可 以觸發(fā)在此名字空間中封裝的另外一個(gè)事件"PrintPage"。在此事件中設(shè)定要打印的文檔內(nèi)容,從而實(shí)現(xiàn)隊(duì)文本文件的打印操作。下面代碼是調(diào) 用"PrintDocument"的"Print"方法,和調(diào)用事件"PrintPage"來(lái)打印richTextBox1中的內(nèi)容:
ThePrintDocument.Print();//其中ThePrintDocument是"PrintDocument"類(lèi)的一個(gè)對(duì)象
下列代碼是設(shè)定打印內(nèi)容即打印richTextBox1中的內(nèi)容:
floatlinesPerPage=0; floatyPosition=0; intcount=0; floatleftMargin=ev.MarginBounds.Left; floattopMargin=ev.MarginBounds.Top; stringline=null; FontprintFont=richTextBox1.Font; SolidBrushmyBrush=newSolidBrush(Color.Black); //計(jì)算每一頁(yè)打印多少行 linesPerPage=ev.MarginBounds.Height/printFont.GetHeight(ev.Graphics); //重復(fù)使用StringReader對(duì)象,打印出richTextBox1中的所有內(nèi)容 while(count<linesPerPage&&((line=myReader.ReadLine())!=null)) { //計(jì)算出要打印的下一行所基于頁(yè)面的位置 yPosition=topMargin+(count*printFont.GetHeight(ev.Graphics)); //打印出richTextBox1中的下一行內(nèi)容 ev.Graphics.DrawString(line,printFont,myBrush,leftMargin,yPosition,newStringFormat()); count++; } //判斷如果還要下一頁(yè),則繼續(xù)打印 if(line!=null) ev.HasMorePages=true; else ev.HasMorePages=false; myBrush.Dispose();
注釋?zhuān)?/strong>由于在上述的代碼中省掉了這些類(lèi)所對(duì)于地名字空間,所以要想成功的編譯和運(yùn)行上述代碼,就要在程序頭部要導(dǎo)入所使用的名字空間。
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C#實(shí)現(xiàn)EXCEL數(shù)據(jù)到TXT文檔的轉(zhuǎn)換
- C#中txt數(shù)據(jù)寫(xiě)入的幾種常見(jiàn)方法
- C#如何讀取Txt大數(shù)據(jù)并更新到數(shù)據(jù)庫(kù)詳解
- C#實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用的TXT文本操作及日志框架詳解
- C#讀寫(xiě)txt文件的2種方法
- C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- C#逐行讀取txt文件的方法
- C#中把日志導(dǎo)出到txt文本的簡(jiǎn)單實(shí)例
- c#數(shù)據(jù)庫(kù)與TXT導(dǎo)入導(dǎo)出的實(shí)例
- C# 實(shí)現(xiàn)TXT文檔轉(zhuǎn)Table的示例代碼
相關(guān)文章
C#實(shí)現(xiàn)窗體抖動(dòng)的兩種方法
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)窗體抖動(dòng)的兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果
這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)自動(dòng)吸附效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07C#實(shí)現(xiàn)文件篩選讀取并翻譯的自動(dòng)化工具
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)文件篩選及讀取內(nèi)容,并翻譯的自動(dòng)化工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-03-03C#實(shí)現(xiàn)微信退款及對(duì)賬功能的示例詳解
在招聘報(bào)名系統(tǒng)里,考務(wù)費(fèi)支付是其中一個(gè)環(huán)節(jié),支付方式很多種,比如銀聯(lián)、微信、支付寶等等,本次我們以微信支付進(jìn)行舉例,在實(shí)際的應(yīng)用中,對(duì)于支付成功的考生,我們會(huì)遇到實(shí)現(xiàn)退款的需求,所以本文給大家介紹了使用C#實(shí)現(xiàn)微信退款及對(duì)賬,需要的朋友可以參考下2023-11-11基于WPF實(shí)現(xiàn)控件輪廓跑馬燈動(dòng)畫(huà)效果
這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)控件輪廓跑馬燈動(dòng)畫(huà)效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-08-08