system.io类库提供了强大的文件系统操作功能,利用system.io下的StreamReader 读文件非常轻松。当然利用streamWriter 写文件也是很轻松的。 不过这两个类不仅是为读写文件而准备的。他们可以处理任何流信息。处理这两个类。system.io下还有很多类似的类。他们可以完成非常复杂的文件的操作。
下面就以StreamReader读文件的方法写一个例子。例子中打开文件利用了FileOpenDialog对话框。
Dim
ts
As
System.IO.StreamReader
Try
With
Me
.OpenFileDialog1
.CheckFileExists
=
True
.CheckPathExists
=
True
.DefaultExt
=
"
txt
"
.DereferenceLinks
=
True
.Filter
=
"
text files(*.txt) | *.txt|All files(*.*)|*.*
"
.Multiselect
=
False
.RestoreDirectory
=
True
.ShowHelp
=
True
.ShowReadOnly
=
False
.ReadOnlyChecked
=
False
.Title
=
"
请选取一个文本文件!
"
.ValidateNames
=
True
If
.ShowDialog()
=
Windows.Forms.DialogResult.OK
Then
FileName
=
.FileName
ts
=
New
System.IO.StreamReader(.OpenFile, System.Text.Encoding.Default)
'
ts = New System.IO.StreamReader(.FileName, System.Text.Encoding.Default)
Me
.TextBox1.Text
=
ts.ReadToEnd
End
If
End
With
Catch
ex
As
Exception
MessageBox.Show(ex.Message,
Me
.Text)
Finally
If
Not
(ts
Is
Nothing
)
Then
ts.Close()
End
If
End
Try
由于字符集的差异(.net默认用UTF-8字符集,而我们系统中的文本文件一般用的是ANSI字符集)。我们一般 如果 像下面这样 实例化 StreamReader 类
ts = New System.IO.StreamReader(.FileName)
或者
ts = New System.IO.StreamReader(.OpenFile)
,而如果这个文本文件不使用UTF-8字符集,打开的文件可能是乱码。
所以,我们一般这样实例化 StreamReader
ts = New System.IO.StreamReader(.OpenFile, System.Text.Encoding.Default)
或者
ts = New System.IO.StreamReader(.FileName, System.Text.Encoding.Default)
也就是提供一个字符集选择。告诉StreamReader使用默认的字符集,而不是用UTF-8。这样打开的文件就不会乱码了。当然如果我们的文本文件使用 的 是UTF-8字符集。那么,我们就不必指定字符集了。