2012-09-12 22 views
7

Tengo un archivo de texto en forma de byte [].¿Cómo leer todo el texto de un archivo de bytes []?

No puedo guardar el archivo en ninguna parte.

Me gustaría leer todas las líneas/texto de este 'archivo'.

¿Alguien puede indicarme en la dirección correcta cómo puedo leer todo el texto de un byte [] en C#?

Gracias!

+1

¿Qué has intentado hasta ahora? – VIRA

+1

¿Ha probado byte [] fileC = File.ReadAllBytes (dialog.FileName); –

+0

@Todd Moses Ya tengo el archivo como un byte [], estoy tratando de leer el texto de ese byte [] ahora. Se me está dando, y no tengo un archivo realmente guardado en el disco, y no quiero tener que guardarlo en el disco y luego leer. – Kyle

Respuesta

19

me gustaría crear un MemoryStream y crear instancias de un StreamReader con eso, es decir:

var stream = new StreamReader(new MemoryStream(byteArray)); 

a continuación, obtener el texto de una línea a la vez con:

stream.readLine(); 

o el archivo completo usando:

stream.readToEnd(); 
+0

¡Funciona, gracias! – Kyle

+1

No hay problema, tuve que resolverlo por una razón [super importante] (http://codegolf.stackexchange.com/questions/88/obfuscated-fizzbuzz-golf) una vez. –

0

Otra posible solución usando Encoding:

Encoding.Default.GetString(byteArray); 

Opcionalmente se puede dividir para obtener las líneas:

Encoding.Default.GetString(byteArray).Split('\n'); 

También puede seleccionar una codificación particular, como UTF-8 en lugar de utilizar Default.

Cuestiones relacionadas