0% encontró este documento útil (0 votos)
56 vistas42 páginas

Organización y Manejo de Archivos

Este documento define los archivos y su manejo. Define archivos de texto y binarios, sus componentes como campos y registros, y métodos para transferir datos como utilizando descriptores, índices y almacenamiento en caché para mejorar el rendimiento. También describe cómo los sistemas operativos manejan la fragmentación, asignación de memoria y el papel de las bibliotecas, el sistema de archivos y hardware en el manejo de archivos.

Cargado por

Jesus David Glez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas42 páginas

Organización y Manejo de Archivos

Este documento define los archivos y su manejo. Define archivos de texto y binarios, sus componentes como campos y registros, y métodos para transferir datos como utilizando descriptores, índices y almacenamiento en caché para mejorar el rendimiento. También describe cómo los sistemas operativos manejan la fragmentación, asignación de memoria y el papel de las bibliotecas, el sistema de archivos y hardware en el manejo de archivos.

Cargado por

Jesus David Glez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Definicin, Tipos y Componentes Manejo de Campos y Registros Transferencia de Datos

Definicin: Objeto que contiene una secuencia de bytes que termina con EOF
Lo que da sentido a dicha secuencia de bytes, son las estructuras de datos que construimos para trabajar con ellos

Representacin grfica:
Apuntador a datos Secuencia flujo de bytes

EOF
Inicio del archivo Indicador de posicin Fin del archivo

De Texto 2. Binario
1.

Cadena de caracteres alfanumricos y smbolos especiales Si se almacenan nmeros, hay que darles formato, signo longitud y precisin Portable no depende de la manera en se representan los datos en cada arquitectura

Los datos se escriben con el mismo formato en que se encuentran en memoria principal Se debe elegir el tipo de dato que corresponda al rango de valores a manipular Pueden contener instrucciones ejecutables

Campo = atributo Registro = conjunto de campos o atributos de una entidad

Archivo = conjunto de registros en medio secundario

Su valor identifica a cada registro Tipos de Llave: Primaria. De manera exclusiva Secundaria. De manera no exclusiva

1.

Comenzar con un indicador de longitud (bytes)

2.
3.

Terminar con un separador (carcter invlido)


Escribirlo como descriptor = valor (incremento de hasta el 50%)
AtrrEntero AtrrCadena AtrrLgico

Para campos de longitud variable Fcil recuperacin Si (longitudMxima < 256 bytes) solo ocupa un byte adicional por campo

Se debe distinguir fcilmente del resto de los caracteres No debe interferir en el procesamiento

Descriptor o atributo Requiere separadores Usar descriptores cortos

AtrrEntero AtrrEntero

AtrrCadena AtrrCadena

AtrrLgico AtrrLgico

A.

Comenzar con un Indicador de longitud (bytes o campos) Terminar con un separador

B.

C.

Utilizar un Archivo ndice

Registros de longitud variable Fcil Recuperacin Problemas de espacio (desperdiciado o insuficiente)

Diferente al de los Campos

Segundo archivo que almacena la llave primaria y la posicin de inicio de cada registro en el archivo de datos
Ubica a cada registro y se puede calcular su longitud

Fragmentacin Sistema de Archivos (bytes) Disco Cache Mapeo de la Memoria Mltiples Sistemas de Archivos

Utilizar un Sector para cada registro o un Cluster para cada archivo facilitara la ubicacin pero se desperdiciara espacio
Dispersar (fragmentar) registros y archivos evita el desperdicio pero implica darle seguimiento a cada porcin de datos

El Sistema Operativo

Ensambla un bloque de registros cuando se escriben o bajan Separar registros de un bloque cuando se leen o suben Proceso transparente para el usuario

Las instrucciones ejecutables del software, manipulan registros, no bloques

Es la parte del SO que Transfiere:


Registros desde/hacia el software Bloques desde/hacia el almacenamiento secundario

Almacenamiento oculto en un Buffer (rea de memoria primaria) muy grande donde se almacenan sectores ledos (muchos bloques de datos, muchos registros)

Cuando se lee un archivo, el bloque que contiene el registro solicitado y otros bloques se almacenan en la memoria cache en una sola operacin fsica incrementando la velocidad de un proceso

Tambin pueden ser localidades dedicadas de alta velocidad en memoria secundaria Efectivo para manejo secuencial poco til para procesos aleatorios

Registro
Bloque

Aplicacin del usuario

Registro Registro Registro Registro Registro Registro Registro Registro

Bloque Bloque Bloque Bloque Bloque


N Bloques en cache

M archivos en medio secundario

Dividir la Memoria Primaria (MP) en segmentos de igual tamao o pginas

Pg 1
Pg 9 Pg 7 Pg 2

Pg 6

Se guardan en Memoria Secundaria (MS) de rpido acceso Cuando se requiere un bloque que no est en MP se sube del medio secundario

Aplicaciones de Software Funciones de biblioteca Sistema de archivos Sistema operativo Micro-instrucciones en Ensamblador Hardware

Unix GNU. rbol Recursivo de directorios y subdirectorios o archivos con permisos de acceso De red. Distribuidos o Paralelos Virtual. Interfaz entre el ncleo del usuario y un sistema de archivos diferente

Creacin, Apertura y Cierre Manipulacin de Registros

Instrucciones al SO para que, por medio de un identificador (apuntador o referencia), enlace el archivo lgico a manipular en una aplicacin y el archivo fsico en almacenamiento secundario

Libera el identificador de un archivo lgico para que se pueda re-utilizarse con otro archivo fsico Garantiza que toda la informacin enviada al archivo lgico quede almacenada en el archivo fsico

Lectura Escritura Altas, Bajas, Cambios, Consultas

fstream ptrFile; //Identificador ptrFile.open(nomArchivo.TXT", ios::app); //Creacin ptrFile<<orgen<<endl; //Escribe Origen en NomArchivo ptrFile.close(); //Cierre ptrFile.open(nomArchivo.TXT, ios::in); //Apertura ptrFile.getline(destino,MAX,\n) //Lee en destino una lnea de NomArchivo ptrFile.close(); MODO in. Lectura trunc. Reescribe

out . Escritura binary . Binario

app .Aade

void CPrueba::escritura(){ fstream arch; arch.open(D:\EQUIPOS.TXT",ios::out); if (arch.fail()) cout<<"\n ERROR!!!"; else { arch.write( (char *)equipos, sizeof(CEquipo) * MAX); cout<<"\N ESCRIBIENDO EN MEDIO SECUNDARIO"; getch(); arch.close(); } }

int CPrueba::lectura){ int i; fstream arch1; arch1.open(D:\EQUIPOS.TXT",ios::in); if (arch1.fail()){ cout<<"\n ERROR!!!; return 0; } for (i=0; !arch1.eof() && i <= MAX; i++ ) arch1.read( (char *) &equipos[i], sizeof(CEquipo) ); arch1.close(); return (i-1); }

void CGaleria::escritura(int i){ ofstream arch("C:\GALERIA.DAT"); if (arch.fail()) cout<<"\n ERROR!!!"; else {


arch.write( (char *)Obras, sizeof(CObra)*i );

cout<<"\n ESCRIBIENDO EN MEDIO SECUNDARIO;

arch.close(); } }

int CGaleria::lectura(){ int i; ifstream arch1("C:\GALERIA.DAT"); if (arch1.fail()){ cout<<"\n ERROR!!!; return 0; } for (i=0; !arch1.eof(); i++ ) arch1.read( (char *) &Obras[i], sizeof(CObra) ); arch1.close(); return (i-1); }

CONSTRUCTORES:

File nomArchivo; nomArchivo= new File (ruta); nomArchivo = new File(ruta,subruta); File nomCarpeta = new File(ruta); nomArchivo = new File(nomCarpeta,subruta);

METODOS DE LA CLASE File DE JAVA

boolean canRead() boolean canWrite() File getParentFile() String getPath() boolean isDirectory() boolean isFile() boolean isHidden() long lastModified() boolean renameTo(File dest) boolean setReadOnly()

import java.io.*; /** Adaptacin Lewis & Loftus. Dra. Silvia Gonzlez Brambila */ public class PruebaDatos{ public static void main (String [] args) throws IOException { final int MAX = 10; int valor; String arch = "prueba.dat"; FileWriter fw = new FileWriter (arch); BufferedWriter bw = new BufferedWriter (fw); PrintWriter salArch = new PrintWriter (bw); for (int i = 1; i <= MAX; i++){ for (int n = 1; n <= MAX; n++) { valor = (int) (Math.random () * 100); salArch.print (valor + " "); } salArch.println (); } salArch.close (); System.out.println ("El archivo de salida ha sido creado: " + arch); }}

import java.io.*; public class ChecaDatos{ public static void main (String [] args) throws IOException String arch = "prueba.dat; String lnea; FileReader fr = new FileReader (arch); BufferedReader entArch = new BufferedReader (fr); lnea = entArch.readLine (); while (lnea != null) { System.out.println (lnea + "\n"); lnea = entArch.readLine (); } entArch.close (); } } {

Arreglo de Objetos Escribirlo en Leer en otro arreglo de objetos desde archivo en medio secundario (el segundo arreglo deber mostrarse en pantalla)

Equipo de dos personas, fecha mxima de entrega martes 27 de septiembre

También podría gustarte