如何讀取和寫入至文字檔,藉由使用視覺 C#

文章翻譯 文章翻譯
文章編號: 816149 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何以讀取和使用視覺 C# 寫入文字檔。

需求

以下概括列出建議的硬體的軟體,網路基礎結構,您必須要有安裝的 service pack:
  • 視覺 C#
本文假設您已熟悉下列主題:
  • 視覺 C#

讀取和寫入文字檔

[ 讀取文字檔這份文件章節將說明如何使用StreamReader類別來讀取文字檔。[ 寫入文字檔案 (範例 1) 以及 寫入文字檔案 (範例 2)章節會說明如何使用StreamWriter類別來將文字寫入至檔案。

讀取文字檔

下列程式碼會使用StreamReader類別,以開啟、 讀取,並關閉文字檔案。您可以傳遞StreamReader建構函式來開啟檔案的文字檔案的路徑是自動的。ReadLine方法會讀取每一行文字,並會增加檔案的指標下的一行,因為它會讀取。當ReadLine方法達到檔案結尾時,它會傳回 null 參考。
  1. 在 「 記事本 」 建立範例文字檔。若要這樣做,請依照下列步驟執行:
    1. 在 [記事本] 中,貼上下列文字:
      hello world
    2. 將檔案儲存為 Sample.txt 中。
  2. 請啟動 Microsoft Visual Studio。
  3. 在上 檔案 功能表指向 然後按一下 專案.
  4. 按一下 視覺 C# 專案 在下 專案類型然後按一下 主控台應用程式 在下 範本

    附註在 Visual Studio 2005年或 Visual Studio 2008年中,按一下 視覺 C# 在下 專案類型然後按一下 主控台應用程式 在下 範本.
  5. Class1.cs 檔的開頭,加入下列程式碼:
    using System.IO;
    附註在 Visual Studio 2005年或 Visual Studio 2008年中,預設的檔案是 Program.cs。
  6. 將下列程式碼加入至Main方法:
    String line;
    try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
       finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    
  7. 在上 偵錯 功能表中,按一下 啟動 若要編譯並執行應用程式。請按請輸入可以關閉主控台視窗。主控台視窗顯示 Sample.txt 檔的內容。
    Hello world

寫入文字檔案 (範例 1)

下列程式碼會使用StreamWriter類別,以開啟、 撰寫,並關閉文字檔案。StreamReader類別類似的方式,您可以將文字檔案的路徑傳遞StreamWriter建構函式會自動開啟該檔案。WriteLine方法寫入文字檔中的一個完整的文字行。
  1. 啟動 Visual Studio。
  2. 在上 檔案 功能表指向 然後按一下 專案.
  3. 按一下 視覺 C# 專案 在下 專案類型然後按一下 主控台應用程式 在下 範本.

    附註在 Visual Studio 2005年或 Visual Studio 2008年中,按一下 視覺 C# 在下 專案類型然後按一下 CLR 主控台應用程式 在下 範本.
  4. Class1.cs 檔的開頭,加入下列程式碼:
    using System.IO;
  5. 將下列程式碼加入至Main方法:
    try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. 在上 偵錯 功能表中,按一下 啟動 若要編譯並執行應用程式。這段程式碼會建立一個檔案可在文字編輯器 (例如記事本) 中的磁碟機 c 開啟 Test.txt 稱為 Test.txt。將 Test.txt 包含兩行文字:
    Hello World!!
    From the StreamWriter class
    

寫入文字檔案 (範例 2)

下列程式碼會使用StreamWriter類別來開啟,若要撰寫,並若要關閉文字檔案。不同於前例,此程式碼會傳遞兩個建構函式的額外參數。第一個參數是檔案路徑和檔案名稱的檔案。第二個參數,則為True,表示該檔案開啟在新增模式。如果您指定給第二個參數,則為 False每當您執行程式碼會覆寫檔案的內容。第三個參數會指定Unicode,使StreamWriter編碼的 Unicode 格式的檔案。您也可以指定下列編碼方法的第三個參數:
  • ASC11
  • Unicode
  • UTF7
  • UTF8
Write方法是使用WriteLine方法時,類似,不同之處在於Write方法並不會自動內嵌的換行鍵或換行字元(CR/LF) 字元組合。這會很有用,當您想要撰寫一個一次的字元。
  1. 啟動 Visual Studio。
  2. 在上 檔案 功能表指向 然後按一下 專案.
  3. 按一下 視覺 C# 專案 在下 專案類型然後按一下 主控台應用程式 在下 範本

    附註在 Visual Studio 2005年或 Visual Studio 2008年中,按一下 視覺 C# 在下 專案類型然後按一下 主控台應用程式 在下 範本
  4. Class1.cs檔的開頭,加入下列程式碼:
    using System.IO;
    using System.Text;
    附註在 Visual Studio 2005年或 Visual Studio 2008年中,預設的檔案是 Program.cs。
  5. 將下列程式碼加入至Main方法:
    Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. 在上 偵錯 功能表中,按一下啟動 若要編譯並執行應用程式。這段程式碼會建立例如,可能在文字編輯器中的磁碟機 c 開啟 Test1.txt 稱為 Test1.txt 的檔案在 [記事本]。Test1.txt 包含單行文字:
    0123456789

完整程式碼清單

  • 讀取文字檔
    //Read a Text File
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args)
    		{
    		
    			String line;
    
    		try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
    
  • 寫入文字檔案 (第 1 版)
    //Write a text file - Version-1
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    			try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
  • 寫入文字檔案 (第 2 版)
    //Write a text file  - Version 2
    using System;
    using System.IO;
    using System.Text;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    		   
    			Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }

疑難排解

對於所有的檔案操作,是良好的程式設計自動換行內部try-catch-finally區塊來處理錯誤和例外狀況的程式碼的做法。明確地說,您可以使檔案未被釋放最後一個區塊中的檔案控制碼無限期鎖定。一些可能的錯誤包括不存在的檔案或正在使用中的檔案。

?考

如需詳細資訊詳細資訊,請造訪下列 Microsoft 開發人員網路 (MSDN) 網站:
StreamReader類別
http://msdn2.microsoft.com/en-us/library/system.io.streamreader (vs.71).aspx

屬性

文章編號: 816149 - 上次校閱: 2013年6月2日 - 版次: 4.0
這篇文章中的資訊適用於:
  • Microsoft Visual C# .NET 2003 標準版
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2008 Express Edition
關鍵字:?
kbfileio kbconsole kbhowtomaster kbhowto kbmt KB816149 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:816149
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com