C#中如何读取和写入到文本文件

读取和写入文本文件

Read a Text File 的这篇文章部分描述如何使用 StreamReader 类来读取文本的文件。Write a Text File (Example 1),和 Write a Text File (Example 2) 在各节说明了如何使用 StreamWriter 类来向文件写入文本。

读取文本文件

若要打开、 读取,和来关闭文本文件,下面的代码使用 StreamReader 类。您可以将文本文件的路径传递给 StreamReader 构造函数自动打开该文件。ReadLine 方法读取的每一行文本,并读取递增到下一行将文件指针。当 ReadLine 方法到达文件结尾时, 它将返回空引用。

  1. 在记事本中创建示例文本文件。若要这样做,请按照下列步骤操作: 启动 Microsoft Visual Studio。
    1. 在记事本中粘贴以下文本:
      hello world
    2. 将文件另存为 Sample.txt。
  2. 文件 菜单上指向 新建,然后单击 项目
  3. 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序

    注意在 Visual Studio 2005 或 Visual Studio 2008 中在 项目类型 框中,单击 Visual C#,然后单击在 模板 下的 控制台应用程序
  4. Class1.cs 文件的开头添加以下代码:
    using System.IO;
    Visual Studio 2005 或 Visual Studio 2008,默认的文件的 注释 是 Program.cs。
  5. 将下面的代码添加到 Main 方法:
     
    块。
  6. 调试 菜单上单击编译并运行该应用程序,请 开始。若要关闭控制台窗口按 ENTER。控制台窗口将显示 Sample.txt 文件
    Hello world
    中的内容

写文本文件 (示例 1)

下面的代码使用 StreamWriter 类打开、 写入,和以关闭该文本文件。StreamReader 类以类似方式您可以将文本文件的路径传递给该 StreamWriter 构造函数,以自动打开该文件。WriteLine 方法写入文本文件的完整文本行。

  1. 启动 Visual Studio。
  2. 文件 菜单上指向 新建,然后单击 项目
  3. 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序

    注意 在 Visual Studio 2005 或 Visual Studio 2008 中在 项目类型 框中,单击 Visual C#,然后单击 模板 下的 CLR 控制台应用程序
  4. Class1.cs 文件的开头添加以下代码:
    using System.IO;
  5. 将下面的代码添加到 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.");
                }

     

    块。
  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. 项目类型 框中,单击 Visual C# 项目,然后单击 模板 下的 控制台应用程序

    注意在 Visual Studio 2005 或 Visual Studio 2008 单击 Visual C#项目类型,然后单击 模板 下的 控制台应用程序
  4. Class1.cs 文件的开头添加以下代码:
    using System.IO;
    using System.Text;
    Visual Studio 2005 或 Visual Studio 2008,默认的文件的 注释 是 Program.cs。
  5. 将下面的代码添加到 Main 方法:
    Int64 x;
    View Code
    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. 调试 菜单上单击编译并运行该应用程序,请 开始。此代码创建一个命名 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

posted on 2011-05-02 09:21  Gelivable【IT随笔】  阅读(2980)  评论(0编辑  收藏  举报

导航