用StreamReader读文件

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字符集。那么,我们就不必指定字符集了。

你可能感兴趣的:(exception,.net)