2011-07-12 10 views
9

Estoy muy confundido con la diferencia exacta entre ellos y el enfoque de uso diferente de estos dos tipos derivados de TextWriter/Reader StringWriter/Reader y StreamReader/Reader. sé que su uso nos puede tratar fácilmente con los datos de carácter basados ​​en el flujo de bytes evitar alboroto como trabajar direclty de usar Filestream ...Diferencia entre StreamWriter/Reader y StringWriter/Readerll

+0

sería útil si pudiera aclarar cuál es exactamente la pregunta; p.ej. ¿Qué necesitas hacer? Sí, esas cosas pueden facilitar el tratamiento de los datos de manera significativa, si esa es la pregunta. – shelleybutterfly

+0

hm .. Creo que ya respondió su propia pregunta. Entonces, ¿cuál es tu confusión? – Tigran

+0

El nombre puede indicar su uso. – Magnus

Respuesta

23
  • TextWriter/Lector es una clase abstracta. Proporciona una abstracción para escribir/leer datos basados ​​en caracteres a/desde una fuente de datos.

  • StreamWriter/Reader es una implementación concreta que utiliza un Stream escribible/legible como fuente de datos. Dado que Stream es una abstracción para escribir/leer datos basados ​​en bytes, se requiere una instancia Encoding para la traducción entre caracteres y bytes.

  • StringWriter/Lector es una aplicación concreta que utiliza una fuente de datos StringBuilder/string como.

+3

Lo tengo ... StreamWriter/Reader básicamente escribe/lee caracteres en/desde la transmisión subyacente ... ya que la transmisión opera en bytes, con la ayuda de la funcionalidad de codificación implementada por este tipo convierte automáticamente los caracteres en bytes (a diferencia de FileStream) es una especie de facilidad de uso ... Mientras que StringReader/Writer funciona en datos de cadena en lugar de transmitir ... – kHAzaDOOm

12

Las clases Stream* leídos de un Stream.
Las clases String* leen de String (y escriben a StringBuilder).

Puede escribir un método que tome TextReader, y llamarlo con StreamReader o StringReader para que lo lea desde una secuencia o una cadena.