读取和写入文本文件
Read a Text File 的这篇文章部分描述如何使用 StreamReader 类来读取文本的文件。Write a Text File (Example 1),和 Write a Text File (Example 2) 在各节说明了如何使用 StreamWriter 类来向文件写入文本。
读取文本文件
若要打开、 读取,和来关闭文本文件,下面的代码使用 StreamReader 类。您可以将文本文件的路径传递给 StreamReader 构造函数自动打开该文件。ReadLine 方法读取的每一行文本,并读取递增到下一行将文件指针。当 ReadLine 方法到达文件结尾时, 它将返回空引用。
- 在记事本中创建示例文本文件。若要这样做,请按照下列步骤操作: 启动 Microsoft Visual Studio。
- 在记事本中粘贴以下文本:
hello world
- 将文件另存为 Sample.txt。
- 在记事本中粘贴以下文本:
- 在 文件 菜单上指向 新建,然后单击 项目。
- 在 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序
注意在 Visual Studio 2005 或 Visual Studio 2008 中在 项目类型 框中,单击 Visual C#,然后单击在 模板 下的 控制台应用程序。 - Class1.cs 文件的开头添加以下代码:
using System.IO;
- 将下面的代码添加到 Main 方法:
- 在 调试 菜单上单击编译并运行该应用程序,请 开始。若要关闭控制台窗口按 ENTER。控制台窗口将显示 Sample.txt 文件
Hello world
写文本文件 (示例 1)
下面的代码使用 StreamWriter 类打开、 写入,和以关闭该文本文件。StreamReader 类以类似方式您可以将文本文件的路径传递给该 StreamWriter 构造函数,以自动打开该文件。WriteLine 方法写入文本文件的完整文本行。
- 启动 Visual Studio。
- 在 文件 菜单上指向 新建,然后单击 项目。
- 在 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序。
注意 在 Visual Studio 2005 或 Visual Studio 2008 中在 项目类型 框中,单击 Visual C#,然后单击 模板 下的 CLR 控制台应用程序。 - Class1.cs 文件的开头添加以下代码:
using System.IO;
- 将下面的代码添加到 Main 方法:
View Code
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."); }
- 在 调试 菜单上单击编译并运行该应用程序,请 开始。此代码创建的在文本编辑器 (如记事本) 的驱动器 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) 字符组合。当您想要一次写入一个字符时,这是很有用。
- 启动 Visual Studio。
- 在 文件 菜单上指向 新建,然后单击 项目。
- 在 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序
注意在 Visual Studio 2005 或 Visual Studio 2008 单击 Visual C# 在 项目类型,然后单击 模板 下的 控制台应用程序 - Class1.cs 文件的开头添加以下代码:
using System.IO; using System.Text;
- 将下面的代码添加到 Main 方法:
Int64 x;
View Codetry { //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."); }
- 在 调试 菜单上单击编译并运行该应用程序,请 开始。此代码创建一个命名 Test1.txt 为驱动器 c。 打开 Test1.txt 在文本编辑器 (如记事本) 上的文件。Test1.txt 包含单行文本:
0123456789
完成代码列表
- 读取文本文件块。
-
View Code
//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)
View Code
- 写文本文件 (版本 2)
View Code