Вы находитесь на странице: 1из 10

ARCHIVOS Y FLUJOS

Programacin Orientada a Objetos.



















29 DE MAYO DE 2014
ITQ
Instituto Tecnolgico de Quertaro
Unidad El Marques
Reyes Aguilar Luis Martin
Archivos y Flujos.
Introduccion.
A lo largo de estas unidades nos hemos percatado que el uso de variables y
arreglosy sabemos que estos ofrecen solo un almacenamiento temporal de los
datos, por ello mismo sabemos que los datos se pierden cuando una variable local
queda fuera del alcance o cuando el porgrama termina.
Ahora con este nuevo tema el cual es Archivos y Flujos, conoceremos una forma
de retener esos datos. En otras palabras almacenaremos grandes cantidades de
datos, incluso despues de que termine el programa que creo los datos. Veamos
en retrospectiva: A menudo, los datos que se mantienen en archivos se conocen
como datos persistentes. Las computadoras almacenan archivos en dispositivos
de lamacenamiento secundario, como discos magneticos, discos opticos y cintas
magneticas.
Con esto adherido a nuestro conocimiento, podremos dar un explicacion de como
crear, actualizar y procesar archivo de datos en programas en C#.
Empezaremos con una visin general de la jerarqua de datos, desde los bits
hasta los archivos. Despus veremos las generalidades acerca de las clases de
procesamiento de archivos de la FCL. Luego presentaremos los ejemplos que
demuestran cmo se puede determinar informacin acerca de los archivos y
directorios en la computadora. El resto simplemente sera muestra cmo escribir y
leer hacia o desde archivos de texto elegibles para los humanos, y archivos
binarios que almacenan objetos completos en formato binario.





Jerarquia de Datos.
Como es bien sabido, la manera en que una computadra procesa los datos es
atraves de ceros y unos, osea nmeros binarios.
Esto ocurre debido a que es simple y econmico el construir dispositivos
electrnicos que puedan suponer dos estados estables: un estado representa 0 y
el otro, 1.
Las computadoras tienen un limite en cuanto a la lectura de datos, por ello mismo
se utilizan escalas de medida. La escala mas pequea que soporta una
computadora es el bit(de esta forma se abrevia; digito binario). Cada elemento de
datos, o bit, puede asumir ya sea el valor 0 o 1.
Los circuitos de la computadora realizan varias manipulaciones simples de bits,
cmo examinar el valor de un bit, establecer el valor de un bit e invertir un bit (de 1
a 0 o de 0 a 1). Para los programadores, trabajar con los datos en forma de bit es
una tarea demasiado dificil, por ello optan por usar formatos mas maleables para
su uso, como los digitos decimales, letras,simbolos especiales. A estos mismo se
le conoce como caracteres.
El conjunto de caracteres de una computadora es el conjunto de todos los
caracteres que se utilizan para escribir programas y representar elementos de
datos en una computadora especca. Debido a que las computadoras slo
pueden procesar ceros y unos, cada carcter en el conjunto de caracteres de una
computadora se representa como un patrn de ceros y unos.
Las computadoras interpretan estos datos como patrones de bits. Los elementos
de datos procesados por las computadoras forman una jerarquia de datos en la
cual los elementos de datos se hacen ms grandes y complejos en estructura, a
medida que pasamos de bits a caracteres, de caracteres a campos y de campos
hasta llegar a conjuntos de datos ms grandes.


Ejemplo de jerarquia de datos.

Texto extraido del libro:
Para facilitar la recuperacin de registros espec cos de un archivo, debe
seleccionarse cuando menos un campo en cada registro como clave de registro, la
cual identica que un registro pertenece a una persona o entidad especca, y
distingue a ese registro de todos los dems. Por ejemplo, en un registro de
nminas se utiliza, por lo general, el nmero de identicacin de empleado como
clave de registro.
Existen muchas formas de organizar los registros en un archivo. Una organizacin
comn se conoce como archivo secuencial, en el que por lo general los registros
se almacenan en orden, mediante un campo que es la clave de registro. En un
archivo de nminas, es comn que los registros se coloquen en orden, en base al
nmero de identicacin del empleado. El registro del primer empleado en el
archivo contiene el nmero de identicacin de empleado ms pequeo, y los
registros subsiguientes contienen nmeros cada vez mayores. La mayora de las
empresas usan muchos archivos distintos para almacenar datos. Por ejemplo, una
compaa podra tener archivos de nminas, archivos de cuentas por cobrar (listas
del dinero que deben los clientes), archivos de cuentas por pagar (listas del dinero
que se debe a los proveedores), archivos de inventarios (listas de informacin
acerca de todos los artculos que maneja la empresa) y muchos otros tipos de
archivos. A menudo, un grupo de archivos relacionados se almacena en una base
de datos. A una coleccin de programas diseados para crear y administrar bases
de datos se le conoce como Sistema d administracion de base de datos.

Archivos y Flujos.
Al hablar de archivos es escencial ligarlo con Flujos. Ya que C# considera a cada
archivo como un flujo secuencial de bits. Cuando abrimos un archivo
inmediatamente se asocia con un flujo.
Cuando se ejecuta un programa, el entorno en tiempo de ejecucin crea tres
objetos ujo, a los cuales se puede acceder mediante las propiedades Console
out, Console.In y Console.Error.
Estos objetos facilitan la comunicacin entre un programa y un archivo o dispositivo
especco. Console.In se reere al objeto de flujo de entrada estandar, el cual permite a
un programa introducir datos desde el teclado. Console.Out se reere al objeto de flujo de
salida estandar, el cual permite a un programa imprimir datos en la pantalla. Console.Error
se reere al objeto de error estandar, el cual permite a un programa imprimir mensajes de
error en la pantalla.
Hemos estado usando Console.Out y Console.In en nuestras aplicaciones de consola; los
mtodos Write y WriteLine utilizan Console.Out para las operaciones de salida, y los
mtodos Read y ReadLine de Console utilizan Console.In para las operaciones de
entrada.
De igual manera podemos usar el using System.IO, como ya sabemos lo ocupamos en la
excepciones. De esta manera pordremos ocupar el StreamReader y todos sus derivados
que aun nos quedan por aprender.
Esta imagen que acontinuacion pondre nos muestra la manera en que una computadora
capta en n bites.


El algoritmo para un flujo siempre sera el mismo.

Apartir de este punto mencionare clases que aun no se nos han mostrado en clase.
Por lo tanto mi conocimiento es nulo sobre ellas, pero al progresar con este ensayo,
entendere y aclarare unas dudas.
Las clases File y Directory.
Estas clases permiten al programa manipular los archivos y directorios en el dicos local.
La clase File puede determinar la informacion del archivo y puede usarse para abrir
archivos en modo de lectura o de escritura. Por otra parte la clase Directory cuanta con
herramientas para manipular directorios.
Por ejemplo los metodos que usa la clase Directory son: DirectoryInfo que es devuelto por
el metodo CreateDirectory y estos contienen informacion de un directorio.
Regresemos un poco al tema de using System.IO
El espacio de la biblioteca .Net contiene una coleccin de clases que soportan algoritmos
para leer y escribir. Por ejemplo, la clase FileStream subclase de Stream permite escribir
o leer datos de un fichero byte a byte. Por otra parte las clases StreamWrite y
StreamReader permiten leer y escribir los caracteres; las clases BinaryReader y
BinaryWriter permiten el leer y escribir datos de cualquier tipo primitivo en binario y
cadenas de caracteres.
Clases y su jerarquia en la biblioteca .NET

Flujo de bytes.
Estos pueden ser leidos utilizando un flujo de la clase FileStream
FileStream
Esta clase ademas de los metodo hereda la clase Stream y proporciona los constructores
siguientes:






Para entender todo lo expuesto anteriormente realizaremos un programa que
guardara un fichero con el formato .txt.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace EscribirBytesSM
{
class Program
{
static void Main(string[] args)
{
FileStream fs = null;
byte[] buffer = new byte[81];
int nbytes = 0, car;

try
{
// crear un flujo hacia el fichero texto.tx
fs = new FileStream("texto.txt", FileMode.Create,
FileAccess.Write);

Console.WriteLine("Escriba el texto que desea
almacenar en el fichero");

while ((car = Console.Read()) != '\r' && nbytes <
buffer.Length)
{
buffer[nbytes] = (byte)car;
nbytes++;
}
//Escribir la linea de texto en el fichero
fs.Write(buffer, 0, nbytes);

}
catch(IOException e) {

Console.WriteLine("Error: " + e.Message);
}

}
}
}

1. Primero definimos una matriz de 81 bytes
2. Despues definimos un flujo a un fichero
3. Leemos la longitud nbytes y la almacenamos en buffer.
4. Excribe explicitamente la linea de texto en el fichero.

Conclusion:
Los flujos y los archivos son la manera en que C# y otros lenguajes de
programacin captan los datos. Ahora nosotros podemos creer una infinidad de
herramientas ocupando todos estos metodos y clases. Ademas de llenarnos de
conocimienot hacia este nuevo tema, que sera util aplicarlo a nuestras
aplicaciones.