Este es uno de los aspectos más básicos y útiles de la programación, casi todas las aplicaciones necesitan generar archivos o leer archivos del sistema operativo para alguna configuración o para implementar algún sistema de seguridad.
Para poder entender este procedimiento tengamos en cuenta algunas características de .Net:
– Primero .Net es 100% orientada a objetos por esta razón casi todos los procedimientos implican invocar clases y declarar objetos de estas clases para proceder.
– Otra característica es la utilización de NameSpace. Qué son? Básicamente identificadores que permiten el acceso a colecciones de clases y métodos.
– Para este ejemplo podemos crear un proyecto de consola que más sencillo, aunque este procedimiento se aplica a casi cualquier tipo de proyectos de C# .Net
Yo le puse como nombre ConsolaPrueba el proyecto aparecerá con el siguiente código:
using System;
using System.Collections.Generic;
using System.Text; // Estos son los NameSpace
namespace ConsolaPrueba // creacion de un namespace para el proyecto
{
class Program // la clase basica {
static void Main(string[] args) // metodo principal
{
}
}
}
Tengamos en cuenta que lo primero que tenemos que hacer es incluir en la lista de namespace System.IO ( ósea agregar using System.IO;) este identifica todas las clases que permiten generar y leer archivos entre otras.
Que código implementamos?.
Que hace el programa?.
Diseñaremos algo bien sencillo y los que deseen pueden mejorarlo con algunos ejercicios que propongo más adelante.
Digamos al usuario que ingrese un texto que será guardado.
Con el siguiente código:
Console.WriteLine(“Ingrese información a guardar “+Environment.NewLine);
¿Qué es eso?
La clase console tiene un método llamado WriteLine que permite imprimir en pantalla y la clase Environment tiene un método llamado NewLine que genera una salto de línea.
Nota: pueden solo escribir cw y presionar la tecla Tab 2 veces.
Ahora creemos el objeto de la clase diseñada para generar archivos. En realidad existen varias clases pero la más fácil de manejar es una llamada StreamWriter.
Agregamos entonces el siguiente código:
StreamWriter oArchivo = new StreamWriter(@"C:\Prueba.txt");
El Constructor de esta clase tiene varias sobrecargas pero la que utilizaremos será la que nos solicita ingresar un path o ruta del archivo, la ruta más sencilla “C:\” J. Y el nombre del archivo quise ponerle Prueba.txt.
Pues entonces que nos falta?.
Solo tenemos que leer la información que ingrese el usuario y guardarla :).
Agregamos entonces el siguiente código:
string info = Console.ReadLine();
oArchivo.Write(info);
oArchivo.Close();
Console.WriteLine(Environment.NewLine);
Console.WriteLine("Archivo guardado!");
Console.Read();
Qué es eso?
Pues bueno primero declaramos una variable tipo string (cadena de caracteres) llamada info donde con el método ReadLine de la clase console, se guardara la información que ingrese el usuario.
Luego con el método Write escribimos en el archivo que creamos y después invocamos el método Close. Por que?. Por que todo lo que escribamos en el archivo se guarda en una memoria temporal cuando le damos Close se transmite a la ruta que le habíamos dado.
Luego imprimimos una línea para que se separe el texto y por ultimo le ponemos el método Read() para que espere que se presione una tecla.
Sera que funciona?.
Creo que todos deben tener lo siguiente :
Entonces……. Hay que probarlo.
Listo ahora que funciona puede mejorarlo, como por ejemplo pidiendo ingresar la ruta donde se guardara el archivo y también la extensión.
Si desean leer archivos solo deben utilizar la clase StreamReader, con el método Read.
Recuerden que este procedimiento se realizaría de la misma manera en otros tipos de proyectos como WinForms.
Espero que les sirva.