当前位置: 代码迷 >> ASP.NET >> StreamReader,StringReader,StreamWriter,StringWriter区别,该怎么解决
  详细解决方案

StreamReader,StringReader,StreamWriter,StringWriter区别,该怎么解决

热度:3668   发布时间:2013-02-25 00:00:00.0
StreamReader,StringReader,StreamWriter,StringWriter区别
StreamReader,StringReader,StreamWriter,StringWriter区别
请问大家,这四个类的区别


------解决方案--------------------------------------------------------
StreamReader:流读取类
StringReader:字符串读取类

StreamWriter:流写入类
StringWriter :字符串写入类 

StreamReader构造器接受一个Stream对象或者一个文件路径(你可以使用Universal Naming Convention [UNC] 路径,但不能用URL)。你还可以指定这些参数:比如编码类型(encoding type)(如果没有特别指定,系统会默认使用UTF8编码);作为缓存的内置缓冲器大小(很可能通过BufferedStream对象来实现);还有一个布尔值,它用来指示是否应通过该Stream的第一个字节来判断编码类型。可以看到,StreamReader是个很有用的封装(wrapper)类。

StringReader、StringWriter 运用字符串缓冲读写文本数据信息

StreamWriter类采用Stream或文件名以及相同的参数名作为StreamReader类的构造器。 StreamWriter类使用了两个重载方法来写入底层Stream: Write和WriteLine(WriteLine方法在最后加了一个回车键)。两种方法都提供很多的重载形式来接受所有.NET基本类型,这看起来很象BinaryWriter类的Write方法;区别在于,数字类型以字符串形式(与区域设置相关)被写入底层设备。

StringWriter类提供一个类似于Stream的方法连接字符串。字符串连接是一个开销很大的操作,因为字符串本身是不变的(immutable)类型。
这行代码: mystring = mystring + "my string"
这里mystring被赋予了一个新值,并申请了新的空间来保存连接结果字符串。
用StringWriter来连接字符串会提供更好的性能。StringWriter类只是另一个对象 -- StringBuilder 的封装,StringBuilder才是真正用来执行字符串连接的类。你可以将StringBuilder作为一个参数构造器传入StringWriter (否则会在其内部生成一个实例),并用GetStringBuilder方法返回StringBuilder。

------解决方案--------------------------------------------------------
StreamReader 、StreamWriter 读写文本数据信息 
StringReader、StringWriter 运用字符串缓冲读写文本数据信息 
StreamWriter 类:实现一个 TextWriter,使其以一种特定的编码向流中写入字符。
StringReader 类:实现从字符串进行读取的 TextReader。
看看MSDN
------解决方案--------------------------------------------------------
首先你要去理解TextReader和TextWriter,以及用它们写出应用(因此就用到了多态),然后才应该去讨论这个问题。