Manejo de Archivos
Manejo de Archivos
Manejo de Archivos
FLUJOS
La comunicación entre programa el origen y el destino de cierta información se realiza
mediante flujos de información (en inglés, stream) que no es más que un objeto que
hace de intermediario entre el programa y el origen o el destino de la información, de
esta forma el programa leerá o escribirá en el flujo sin importar desde dónde viene la
información y hacia a dónde va.
FLUJOS
Este nivel de abstracción hace que el programa no tenga que saber nada del
dispositivo, lo que se traduce en una facilidad más a la hora de escribir programas,
puesto que los algoritmos para leer y escribir datos serán siempre más o menos los
mismos.
Leer Escribir
Abrir un flujo desde un fichero Abrir un flujo desde un fichero
Mientras haya información Mientras haya información
Leer la información Escribir la información
Cerrar el flujo Cerrar el flujo
El espacio de nombre System.IO de la biblioteca .Net contiene una colección de
clases que soportan estos algoritmos para leer y escribir.
Por ejemplo la clase FileStream, subclase de Stream, permite leer y escribir datos de
un ficheros byte a byte; análogamente la clase StreamWrite y StreamReader,
subclases de TextWrite y TextReader, respectivamente permiten leer y escribir los
caracteres y las clases BinaryReader y BinaryWrite permiten leer y escribir dato de
cualquier tipo primitivo en binario y cadena de caracteres.
Object
BinaryWrite
ABRIENDO FICHEROS PARA ACCESO SECUENCIAL
El tipo de acceso más simple a un fichero de datos es el secuencial. Un fichero
abierto para acceso secuencial es un fichero que puede almacenar registros de
cualquier longitud incluso de sólo un Byte. Cuando la información se escribe registro
a registro, éstos son colocados uno a continuación de otro, y cuando se lee, se
empieza por el primer registro y se continúa al siguiente hasta alcanzar el final.
Los datos pueden ser escritos o leídos de un fichero byte a byte utilizando un flujo de
la clase FileStream
FILESTREAM
Permite leer y escribir byte en un fichero, esta clase además de los métodos que
hereda de la clase Stream, proporciona los siguientes constructores.
FileStream SourceStream =new FileStream(string Rutaarchivo , FileMode modo)
FileStream SourceStream =new FileStream(string Rutaarchivo , FileMode modo,
FileAccess acceso)
El parámetro nombre es una cadena de caracteres que especifica la ruta donde está
guardado o se guardará el fichero. Ejemplo
“C:\Temp\Archivo.txt”
SourceStream.Close();
UNA OBSERVACIÓN ACERCA DE LA DECLARACIÓN
DE NOMBRES/RUTAS DE ARCHIVOS EN C#.
Usualmente, la ruta de un archivo contiene el carácter ‘\’, que en C# se utiliza
como carácter de control para símbolos especiales (como el cambio de línea: ‘\n’).
Entendiendo que no es el mismo sentido, se utiliza una sintaxis particular, anteponiendo el símbolo
‘@’ antes del string con la ruta del archivo. Es decir:
FILEMODE
El parámetro Modo, del tipo Enumerado FileMode, puede tomar uno de los siguientes
valores: FileMode Descripción
CreateNew Crear un nuevo fichero. Si el fichero existe, se lanzara una
excepción del tipo IOException.
Create Crear un nuevo fichero. Si el fichero existe lo sobre escribirá.
Open Abrir un fichero existente. Si el fichero no existe, se lanzará un
excepción del tipo FileNotFoundException
OpenOrCreate Abrir un fichero si existe; si no, se crea un nuevo fichero
Truncate Abrir un fichero existente. Una vez abierto el fichero será truncado
a cero byte de longitud.
Append Abrir Fichero para añadir datos al final del mismo si existe, o
crear un nuevo fichero sino existe
El parámetro acceso, del tipo enumerado FileAccess puede tomar uno de los
siguientes valores.
FileMode Descripción
Read Permite acceder al fichero para realizar operaciones de lectura
Writer.Close();
Reader.Close();
LECTURA STREAMREADER
FileStream SourceStream = new FileStream(FileName,FileMode.OpenOrCreate,FileAccess.Read);
StreamReader Lector = new StreamReader(SourceStream);
return Empleados;
}
public List<Empleado> Consultar()
{
Empleados = new List<Empleado>();
“1,ANA,PADILLA,1000000”
MAPEAR DE STRING A UN OBJETO
“1,ANA,PADILLA,1000000” Empleado:Empleado
Identificacion:1
Nombre:ANA
Apellido:Padilla
Sueldo:100000
“1,ANA,PADILLA,1000000” DatosEmpleado={1,ANA,PADILLA,1000000}
Empleado:Empleado
DatosEmpleado={1,ANA,PADILLA,1000000}
Identificacion:1
Nombre:ANA
Apellido:Padilla
2. Asignar a cada propiedad del objeto la Sueldo:100000
respectiva posición del Array
while ((Linea = Reader.ReadLine())!= null)
{
char delimiter = ',';
string[] DatosEmpleado = Linea.Split(delimiter);
Empleados.Add(empleado);
} Empleado:Empleado
Identificacion:1
Nombre:ANA
Apellido:Padilla
3. Guardar el objeto en la lista Sueldo:100000