StreamWriter/Reader和StringWriter/Reader的区别

24

我对TextWriter/Reader派生类型和StringWriter/Reader以及StreamReader/Reader之间的确切区别和不同的使用方法感到非常困惑。 我知道使用它们可以很容易地处理基于字符的流数据,避免了直接使用Filestream时的字节麻烦...


如果您能澄清问题的具体内容,例如您需要做什么,那将会很有帮助。是的,如果问题是处理数据,这些工具可以显著地简化操作。 - shelleybutterfly
嗯,我认为你已经回答了自己的问题。那你还有什么疑惑吗? - Tigran
名称可能暗示了它们的用途。 - Magnus
3个回答

45
  • TextWriter/Reader 是一个抽象类,提供了将基于字符的数据写入/读取到/自数据源的抽象。

  • StreamWriter/Reader 是一个具体实现,使用可写/可读的Stream作为数据源。由于Stream是基于字节的数据读写的抽象,因此需要使用一个Encoding实例来进行字符和字节之间的转换。

  • StringWriter/Reader 是一个具体实现,使用StringBuilder/string作为数据源。


3
我明白了。StreamWriter/Reader基本上是将字符写入/读取底层流...由于流操作的是字节,在此类型实现的编码功能的帮助下,自动将字符转换为字节(不像FileStream),因此使用起来相对容易。而StringReader/Writer则针对字符串数据而非流进行处理... - kHAzaDOOm

16

Stream*类从Stream中读取。
String*类从String中读取(并写入StringBuilder)。

你可以编写一个方法,该方法接受TextReader参数,并使用StreamReaderStringReader调用它,以使其从流或字符串中读取。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接