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
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 对象的一个引用。