原始 KB 编号:
816149
本文的
读取文本文件
部分介绍如何使用
StreamReader
类读取文本文件。
编写文本文件 (示例 1)
和
编写文本文件 (示例 2)
部分
StreamWriter
介绍如何使用类将文本写入文件。
读取文本文件
以下代码使用
StreamReader
类打开、读取和关闭文本文件。 可将文本文件的路径传递给
StreamReader
构造函数,以自动打开该文件。 该方法
ReadLine
读取每行文本,并递增文件指针以在读取时指向下一行。
ReadLine
当方法到达文件的末尾时,它将返回一个空引用。 有关详细信息,请参阅
StreamReader 类
。
在记事本中创建一个示例文本文件。 请按以下步骤操作:
将
hello world
文本粘贴到 记事本。
将文件另存为 Sample.txt
。
启动 Microsoft Visual Studio。
在“文件”
菜单上,指向“新建”
,然后选择“项目”
。
在“项目类型”
下选择“Visual C# 项目”
,然后在“模板”
下选择“控制台应用程序”
。
在
Class1.cs
文件的开头添加以下代码:
using System.IO;
将以下代码添加到 Main
方法中:
String line;
//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 line 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.");
在“调试”菜单上,选择“开始”以编译并运行应用程序。 按 ENTER 键关闭控制台窗口。 控制台窗口显示 Sample.txt 文件内容:
Hello world
编写一个文本文件 (示例 1)
以下代码使用StreamWriter
类打开、写入和关闭文本文件。 与StreamReader
类类似 ,你可以将文本文件的路径传递给StreamWriter
构造函数以自动打开该文件。 WriteLine
方法将完整的文本行写入文本文件。
启动 Visual Studio。
在“文件”菜单上,指向“新建”,然后选择“项目”。
在“项目类型”下选择“Visual C# 项目”,然后在“模板”下选择“控制台应用程序”。
在 Class1.cs 文件的开头添加以下代码:
using System.IO;
将以下代码添加到 Main
方法中:
//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 的文件。在文本编辑器中(如 Notepad)打开 Test.txt。 Test.txt 包含两行文本:
Hello World!!
From the StreamWriter class
编写一个文本文件(示例 2)
以下代码使用StreamWriter
类打开、写入和关闭文本文件。 与上一示例不同,此代码将两个附加参数传递给构造函数。 第一个参数是文件路径和文件名。 第二个参数true
指定在追加模式下打开文件。 如果指定false
第二个参数,则每次运行代码时将覆盖文件的内容。 第三个参数指定Unicode
,以便以StreamWriter
Unicode 格式对文件进行编码。 还可以为第三个参数指定以下编码方法:
ASC11
Unicode
UTF-7
UTF-8。
此 Write
方法与 WriteLine
方法类似,只是 Write
方法不会自动嵌入回车或换行 (CR/LF) 字符组合。 当你想要一次编写一个字符时,它非常有用。
启动 Visual Studio。
在"文件"菜单上,指向"新建",然后单击"项目"。
单击“项目类型”下的“Visual C# 项目”,然后单击“模板”下的“控制台应用程序”。
在 Class1.cs 文件的开头添加以下代码:
using System.IO;
using System.Text;
将以下代码添加到 Main
方法中:
Int64 x;
//Open the File
StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
//Write out 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.");
在“调试”菜单上,选择“开始”以编译并运行应用程序。 此代码在驱动器 C 上创建名为 Test1.txt 的文件。在文本编辑器上(如 Notepad)打开 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;
//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 line 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)
//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;
//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
以处理错误和异常。 具体来说,你需要在最后一个块中释放文件的句柄,以便文件不会无限期锁定。 一些可能的错误包括不存在的文件或已在使用的文件。