VB.Net - 读取和写入文本文件
StreamReader 和 StreamWriter 类用于从文本文件读取数据或向文本文件写入数据。 这些类继承自抽象基类 Stream,它支持在文件流中读取和写入字节。
StreamReader 类
StreamReader 类还继承自抽象基类 TextReader,它表示用于读取一系列字符的阅读器。 下表描述了StreamReader类的一些常用方法 −
序号 | 方法名称 & 用途 |
---|---|
1 |
Public Overrides Sub Close 它关闭 StreamReader 对象和底层流,并释放与读取器关联的所有系统资源。 |
2 |
Public Overrides Function Peek As Integer 返回下一个可用字符,但不使用它。 |
3 |
Public Overrides Function Read As Integer 从输入流读取下一个字符,并将字符位置前进一个字符。 |
示例
以下示例演示读取名为 Jamaica.txt 的文本文件。 文件读取 −
Down the way where the nights are gay And the sun shines daily on the mountain top I took a trip on a sailing ship And when I reached Jamaica I made a stop
Imports System.IO Module fileProg Sub Main() Try ' 创建 StreamReader 的实例以从文件中读取。 ' using 语句还会关闭 StreamReader。 Using sr As StreamReader = New StreamReader("e:/jamaica.txt") Dim line As String ' 读取并显示文件中的行,直到到达文件末尾。 line = sr.ReadLine() While (line <> Nothing) Console.WriteLine(line) line = sr.ReadLine() End While End Using Catch e As Exception ' 让用户知道哪里出错了。 Console.WriteLine("The file could not be read:") Console.WriteLine(e.Message) End Try Console.ReadKey() End Sub End Module
猜猜当你编译并运行程序时它会显示什么!
StreamWriter 类
StreamWriter类继承自代表一个写入器的抽象类TextWriter,它可以写入一系列字符。
下表显示了该类的一些最常用的方法 −
序号 | 方法名称 & 用途 |
---|---|
1 |
Public Overrides Sub Close 关闭当前的 StreamWriter 对象和底层流。 |
2 |
Public Overrides Sub Flush 清除当前写入器的所有缓冲区,并使所有缓冲数据写入底层流。 |
3 |
Public Overridable Sub Write (value As Boolean) 将布尔值的文本表示形式写入文本字符串或流。 (继承自TextWriter。) |
4 |
Public Overrides Sub Write (value As Char) 将一个字符写入流。 |
5 |
Public Overridable Sub Write (value As Decimal) 将十进制值的文本表示形式写入文本字符串或流。 |
6 |
Public Overridable Sub Write (value As Double) 将 8 字节浮点值的文本表示形式写入文本字符串或流。 |
7 |
Public Overridable Sub Write (value As Integer) 将 4 字节有符号整数的文本表示形式写入文本字符串或流。 |
8 |
Public Overrides Sub Write (value As String) 将字符串写入流。 |
9 |
Public Overridable Sub WriteLine 将行终止符写入文本字符串或流。 |
上面的列表并不详尽。 有关方法的完整列表,请访问 Microsoft 的文档
示例
以下示例演示使用 StreamWriter 类将文本数据写入文件 −
Imports System.IO Module fileProg Sub Main() Dim names As String() = New String() {"Zara Ali", _ "Nuha Ali", "Amir Sohel", "M Amlan"} Dim s As String Using sw As StreamWriter = New StreamWriter("names.txt") For Each s In names sw.WriteLine(s) Next s End Using ' 读取并显示文件中的每一行。 Dim line As String Using sr As StreamReader = New StreamReader("names.txt") line = sr.ReadLine() While (line <> Nothing) Console.WriteLine(line) line = sr.ReadLine() End While End Using Console.ReadKey() End Sub End Module
当上面的代码被编译并执行时,会产生以下结果 −
Zara Ali Nuha Ali Amir Sohel M Amlan