Estoy probando cómo las clases FileStream y StreamReader funcionan juntas. A través de una aplicación de consola. Estoy tratando de entrar en un archivo y leer las líneas e imprimirlas en la consola.Problema de FileStream StreamReader en C#
He podido hacerlo con un ciclo while, pero quiero probarlo con un ciclo foreach.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace testing
{
public class Program
{
public static void Main(string[] args)
{
string file = @"C:\Temp\New Folder\New Text Document.txt";
using(FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read))
{
using(StreamReader sr = new StreamReader(fs))
{
foreach(string line in file)
{
Console.WriteLine(line);
}
}
}
}
}
}
El error me siguen dando para esto es: no se puede convertir el tipo char 'a 'cadena'
El bucle while, que hace el trabajo, tiene el siguiente aspecto:
while((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
I Probablemente esté pasando por alto algo realmente básico, pero no puedo verlo.
Sobre el tema de foreach (relacionado directamente con su comentario sobre el "rendimiento"), recomiendo el capítulo 6 libre de C# en profundidad - aquí: http://www.manning.com/skeet/ –
Su problema es que su código se está iterando (foreach) a través de cada elemento en "archivo" (que es una cadena). Por lo tanto, cada elemento es un "char". De ahí el mensaje de error del compilador que está tratando de convertir al tipo de cadena. Debe iterar (foreach) a través de los datos de la secuencia. – RichS