StringWriter 位于 System.IO 名称空间下。StringWriter 也可以代替String 类 来完成 字符串 拼接的 相关操作,效率较高。

一个简单的使用例子如下:


Dim 
   swA  
  As 
    
  New 
   System.IO.StringWriter
         
  Dim 
   arrStr()  
  As 
    
  String 
    
  = 
   { 
  " 
  Northsnow 
  " 
  ,  
  " 
  塞北的雪 
  " 
  ,  
  " 
  csdn 
  " 
  ,  
  " 
  中国最大的开发者网络 
  " 
  ,  
  " 
   
  " 
  }
        swA.WriteLine(arrStr( 
  0 
  ))
        swA.WriteLine(arrStr( 
  1 
  ))
        swA.WriteLine( 
  String 
  .Format( 
  " 
  {0}-{1}-{2} 
  " 
  , arrStr( 
  2 
  ), arrStr( 
  3 
  ), arrStr( 
  4 
  )))
         
  Me 
  .TextBox1.AppendText(Environment.NewLine)
         
  Me 
  .TextBox1.AppendText(swA.ToString)
         
  Me 
  .TextBox1.AppendText(Environment.NewLine)

  此程序的输出结果为:

Northsnow
塞北的雪
csdn-中国最大的开发者网络-

大家一定注意到了 本例中用的是 WriteLine 方法,其实
swA.WriteLine("Northsnow")
方法相当于
swA.Write("Northsnow")
swA.Write(swA.NewLine)

另外还可以将 信息写入 到 StringBuilder,一个叫完整的例子如下:


Dim    sbA  
  As 
    
  New 
   System.Text.StringBuilder
        sbA.AppendLine(   " 
  这是一个将 StringWriter 写入到 StringBuilder的例子: 
  " 
  )
           ' 
  这个StringWriter的数据写到指定的 StringBuilder中 
  
            
  Dim 
   swA  
  As 
    
  New 
   System.IO.StringWriter(sbA)
           Dim 
   arrStr()  
  As 
    
  String 
    
  = 
   { 
  " 
  Northsnow 
  " 
  ,  
  " 
  塞北的雪 
  " 
  ,  
  " 
  csdn 
  " 
  ,  
  " 
  中国最大的开发者网络 
  " 
  ,  
  " 
   
  " 
  }
        swA.WriteLine(arrStr(   0 
  ))
        swA.WriteLine(arrStr(   1 
  ))
        swA.WriteLine(   String 
  .Format( 
  " 
  {0}-{1}-{2} 
  " 
  , arrStr( 
  2 
  ), arrStr( 
  3 
  ), arrStr( 
  4 
  )))
           Me 
  .TextBox1.AppendText(Environment.NewLine)
           Me 
  .TextBox1.AppendText(swA.ToString)
           Me 
  .TextBox1.AppendText(Environment.NewLine)

           ' 
  可以通过StringWriter 的 GetStringBuilder 方法返回一个 StringBuilder 
  
            
  Dim 
   sbB  
  As 
   System.Text.StringBuilder  
  = 
   swA.GetStringBuilder()
        sbB.AppendLine(   " 
  在返回的 StringBuilder 中添加一行  
  " 
  )
           Me 
  .TextBox1.AppendText(Environment.NewLine)
           Me 
  .TextBox1.AppendText(sbB.ToString)

        swA.Close()     '

大家注意,此处将 StringWriter 关闭了,但是 后面依然可以用 StringBuilder

VB.NET中应用 StringWriter_System


sbA.AppendLine(   " 
  在 StringBuilder 中 新添加一行 
  " 
  )
           Me 
  .TextBox1.AppendText(sbA.ToString)

此例子返回的结果为:

这是一个将 StringWriter 写入到 StringBuilder的例子:
Northsnow
塞北的雪
csdn-中国最大的开发者网络-

这是一个将 StringWriter 写入到 StringBuilder的例子:
Northsnow
塞北的雪
csdn-中国最大的开发者网络-
在返回的 StringBuilder 中添加一行
这是一个将 StringWriter 写入到 StringBuilder的例子:
Northsnow
塞北的雪
csdn-中国最大的开发者网络-
在返回的 StringBuilder 中添加一行
在 StringBuilder 中 新添加一行

细心的朋友可能已经发现。sbA  和 sbB两个StringBuilder 一样了。也就是 sbA和sbB互相影响。对其中一个操作,另一个也跟着变。这是怎么回事呢?

其实此时他们是一个引用。也就是通过 GetStringBuilder返回的 StringBuilder 对象 其实就是对原来的 StringBuilder 对象的一个引用。