您目前已離線,請等候您的網際網路重新連線

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

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本: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 Fileusing 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-1using 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 2using 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) 網站: 回到頁首

警告:本文為自動翻譯

內容

文章識別碼:816149 - 最後檢閱時間:06/02/2013 03:28:00 - 修訂: 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
意見反應
ent.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">