用StreamReader读文件

阅读 21

2023-09-18


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

精彩评论(0)

0 0 举报