从文件读取文本
下面的示例演示如何使用适用于桌面应用的 .NET 以异步方式和同步方式从文本文件中读取文本。 在这两个示例中,当你创建 StreamReader 类的实例时,你会提供文件的绝对路径或相对路径。
注意
这些代码示例不适用于通用 Windows (UWP) 应用,因为 Windows 运行时提供了对文件进行读写操作的不同流类型。 有关详细信息,请参阅 UWP 处理文件。 有关演示如何在 .NET Framework 流和 Windows 运行时流之间进行转换的示例,请参阅如何:在 .NET Framework 流和 Windows 运行时流之间进行转换。
先决条件
在应用所在的同一文件夹中创建名为 TestFile.txt 的文本文件。
向文本文件添加一些内容。 本文中的示例会将文本文件的内容写入控制台。
读取文件
以下示例演示控制台应用中的同步读取操作。 文件内容在字符串变量中读取和存储,然后再写入控制台。
- 创建一个 StreamReader 实例。
- 调用 StreamReader.ReadToEnd() 方法并将结果分配给字符串。
- 将输出写入控制台。
try
{
// Open the text file using a stream reader.
using StreamReader reader = new("TestFile.txt");
// Read the stream as a string.
string text = reader.ReadToEnd();
// Write the text to the console.
Console.WriteLine(text);
}
catch (IOException e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Try
' Open the text file using a stream reader.
Using reader As New StreamReader("TestFile.txt")
' Read the stream as a string.
Dim text As String = reader.ReadToEnd()
' Write the text to the console.
Console.WriteLine(text)
End Using
Catch ex As IOException
Console.WriteLine("The file could not be read:")
Console.WriteLine(ex.Message)
End Try
异步读取文件
以下示例演示了控制台应用中的异步读取操作。 文件内容在字符串变量中读取和存储,然后再写入控制台。
- 创建一个 StreamReader 实例。
- 等待该方法 StreamReader.ReadToEndAsync() 并将结果分配给字符串。
- 将输出写入控制台。
try
{
// Open the text file using a stream reader.
using StreamReader reader = new("TestFile.txt");
// Read the stream as a string.
string text = await reader.ReadToEndAsync();
// Write the text to the console.
Console.WriteLine(text);
}
catch (IOException e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Try
' Open the text file using a stream reader.
Using reader As New StreamReader("TestFile.txt")
' Read the stream as a string.
Dim text As String = Await reader.ReadToEndAsync()
' Write the text to the console.
Console.WriteLine(text)
End Using
Catch ex As IOException
Console.WriteLine("The file could not be read:")
Console.WriteLine(ex.Message)
End Try