Trabajo con archivos
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 26 de 66.
En C#, puedes trabajar con archivos usando clases del espacio de nombres System.IO. Las dos clases principales para archivos de texto son StreamReader (para leer) y StreamWriter (para escribir).
Escribir en un archivo:
using System.IO;
// Crea un StreamWriter para escribir en un archivo
StreamWriter writer = new StreamWriter("myfile.txt");
// Escribe texto en el archivo
writer.WriteLine("Hello, World!");
writer.WriteLine("This is line 2");
// Cierra el archivo
writer.Close();Lectura desde un archivo:
using System.IO;
// Crea un StreamReader para leer un archivo
StreamReader reader = new StreamReader("myfile.txt");
// Lee todo el contenido del archivo
string content = reader.ReadToEnd();
Console.WriteLine(content);
// Cierra el archivo
reader.Close();Lectura línea por línea:
StreamReader reader = new StreamReader("myfile.txt");
// Lee la primera línea
string line1 = reader.ReadLine();
Console.WriteLine(line1);
// Lee la segunda línea
string line2 = reader.ReadLine();
Console.WriteLine(line2);
reader.Close();¡Recuerda cerrar siempre los archivos con Close() cuando termines!
Desafío
FácilCrea un método llamado ReadFile que:
- Reciba un parámetro de tipo string:
filename - Lea el contenido del archivo usando
StreamReader - Imprima el contenido en la consola
- Cierre el lector
Pruébalo tú mismo
using System;
using System.IO;
class Program
{
public static void ReadFile(string filename)
{
// Escribe tu código aquí
}
static void Main(string[] args)
{
string filename = Console.ReadLine();
ReadFile(filename);
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online