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 |
从输入流中读取下一个字符,并将字符位置前进一个字符。 |
示例
以下示例演示如何读取名为 test.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
文件:fileProg.vb -
Imports System.IO
Module fileProg
Sub Main()
Try
' Create an instance of StreamReader to read from a file. '
' The using statement also closes the StreamReader. '
Using sr As StreamReader = New StreamReader("e:/jamaica.txt")
Dim line As String
' Read and display lines from the file until the end of '
' the file is reached. '
line = sr.ReadLine()
While (line <> Nothing)
Console.WriteLine(line)
line = sr.ReadLine()
End While
End Using
Catch e As Exception
' Let the user know what went wrong.'
Console.WriteLine("The file could not be read:")
Console.WriteLine(e.Message)
End Try
Console.ReadKey()
End Sub
End Module
编译和运行程序时显示的结果如下 -
F:\worksp\vb.net\filehandle>vbc fileProg.vb
Microsoft (R) Visual Basic Compiler version 14.0.1038
for Visual Basic 2012
Copyright (c) Microsoft Corporation. All rights reserved.
... ...
F:\worksp\vb.net\filehandle>fileProg.exe
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
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 writeFile
Sub Main()
Dim names As String() = New String() {"Hakou Ali", "Nacy Lee", "Amir Wong", "Marry 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
' Read and show each line from the file. '
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
执行上面示例代码,得到以下结果 -
F:\worksp\vb.net\filehandle>vbc writeFile.vb
Microsoft (R) Visual Basic Compiler version 14.0.1038
for Visual Basic 2012
Copyright (c) Microsoft Corporation. All rights reserved.
......
F:\worksp\vb.net\filehandle>writeFile.exe
Hakou Ali
Nacy Lee
Amir Wong
Marry Amlan
上一篇:
VB.Net文件处理
下一篇:
VB.Net基本控件