2012-01-17 12 views
14
string abc = "This is a string"; 

¿Cómo cargo abc en un FileStream?¿Cómo cargo una cadena en un FileStream sin ir al disco?

FileStream input = new FileStream(.....); 
+2

¿No sería eso simplemente un ' MemoryStream' entonces? – Yuck

+1

¿Por qué querrías? ¿Por qué no algo así como un MemoryStream? –

+1

¿Tiene que ser una secuencia de archivos? –

Respuesta

17

Utilice un MemoryStream lugar ...

MemoryStream ms = new MemoryStream(System.Text.Encoding.ASCII.GetBytes(abc)); 

recordar un MemoryStream (al igual que un FileStream) necesita ser cerrado cuando haya terminado con él. Siempre se puede colocar el código en un bloque usando para hacer esto más fácil ...

using(MemoryStream ms = new MemoryStream(System.Text.Encoding.ASCII.GetBytes(abc))) 
{ 
    //use the stream here and don't worry about needing to close it 
} 

NOTA: Si la cadena es Unicode en lugar de ASCII es posible que desee especificar esto al convertir a una matriz de bytes. Básicamente, un carácter Unicode ocupa 2 bytes en lugar de 1. Se agregará relleno si es necesario (por ejemplo, 0x00 0x61 = "a" en Unicode, donde ASCII 0x61 = "a")

Cuestiones relacionadas