No estoy seguro de lo que estoy haciendo mal, he visto muchos ejemplos, pero parece que no funciona.Escribir en MemoryStream con StreamWriter devuelve vacío
public static Stream Foo()
{
var memStream = new MemoryStream();
var streamWriter = new StreamWriter(memStream);
for (int i = 0; i < 6; i++)
streamWriter.WriteLine("TEST");
memStream.Seek(0, SeekOrigin.Begin);
return memStream;
}
que estoy haciendo una prueba sencilla de este método para tratar de conseguir que pase, pero no importa qué, mi conteo colección es 0.
[Test]
public void TestStreamRowCount()
{
var stream = Foo();
using (var reader = new StreamReader(stream))
{
var collection = new List<string>();
string input;
while ((input = reader.ReadLine()) != null)
collection.Add(input);
Assert.AreEqual(6, collection.Count);
}
}
Nota: He cambiado alguna sintaxis anterior sin compilando en el método de prueba. Lo que es más importante es el primer método que parece devolver una secuencia vacía (mi reader.ReadLine() siempre lee una vez). No estoy seguro de lo que estoy haciendo mal. Gracias.
que no están de acuerdo con su conversión en una matriz. Un MemoryStream puede actuar como un simple flujo de Stream y la mayoría de las veces al consumidor no le importa su implementación. Muchas veces utiliza un MemoryStream mientras prueba y un flujo de archivos durante la producción, por ejemplo –
Para mis propósitos, sí quiero devolver un Stream. Por la misma razón Matt mencionó anteriormente. Flushing the StreamWriter era lo que me estaba perdiendo. Gracias. – jsmith
Sé que esta es una publicación antigua. Pero simplemente me salvó. Gracias :) – Andrew