Necesito convertir un String a tipo System.IO.Stream para pasar a otro método.Convertir cadena a System.IO.Stream
Intenté esto sin éxito.
Stream stream = new StringReader(contents);
Necesito convertir un String a tipo System.IO.Stream para pasar a otro método.Convertir cadena a System.IO.Stream
Intenté esto sin éxito.
Stream stream = new StringReader(contents);
Prueba esto:
// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(contents);
//byte[] byteArray = Encoding.ASCII.GetBytes(contents);
MemoryStream stream = new MemoryStream(byteArray);
y
// convert stream to string
StreamReader reader = new StreamReader(stream);
string text = reader.ReadToEnd();
Gracias. No sabía que MemoryStream era lo mismo que Stream. – xbonez
@xbonez: 'Stream' no es lo mismo que' MemoryStream'. 'MemoryStream' hereda de' Stream', al igual que 'FileStream'. Así que puedes lanzarlos como 'Stream' ... – Marco
Solo una nota: las rutas implementan IDisposable, por lo que necesitas un envoltorio de uso a su alrededor para estar seguros. –
Para convertir una cadena en una corriente que necesita para decidir qué codificar los bytes de la corriente debe tener para representar esa cadena - por ejemplo, puede:
MemoryStream mStrm= new MemoryStream(Encoding.UTF8.GetBytes(contents));
referencias MSDN:
System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(contents));
string str = "asasdkopaksdpoadks";
byte[] data = Encoding.ASCII.GetBytes(str);
MemoryStream stm = new MemoryStream(data, 0, data.Length);
El uso de la codificación ASCII hace que Panda triste ... :( – jebar8
esto es viejo, pero ayuda:
también se puede utilizar la corriente StringReader
string str = "asasdkopaksdpoadks";
StringReader TheStream = new StringReader(str);
-1 Bueno, "¿qué no funcionó?" Considere leer detenidamente el espacio de nombres [System.IO] (http://msdn.microsoft.com/en-us/library/29kt2zfk.aspx) ... hay una clase de flujo "en memoria" muy útil. –
No sabía que MemoryStream era lo mismo en Stream. – xbonez