PROGRAMACION I Archivos directos

Documentos relacionados
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Esta aplicación se compone de 3 programas o clases, según el siguiente esquema: SueldoMedio.java. Sueldo.java

Estructura de datos y Programación

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar

Soluciones al Examen de Fundamentos de Computadores y Lenguajes

Examen de Programación 1. Viernes 31/enero/2014. Problema 1 o (2.5 puntos) Disponer un documento de identificación con fotografía sobre la mesa.

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens

Manejo de archivos de acceso directo en Java.

Práctica No. 2. Tipos de Datos y Entrada/Salida Estándar

Construcciones del Lenguaje Java

Java para programadores

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

JAVA 1. Introducción

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Java. Introducción a la Programación Orientada a Objetos

Bloque II. Elementos del lenguaje de programación Java

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Programación Orientada a Objetos

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

Examen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Práctica 11c. Práctica 11c. José M. Ordax

Práctica 11d. Práctica 11d. José M. Ordax

Introducción a Java. Introducción a Java. Programación I

Examen escrito de Programación 1

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

Si bien hay gran cantidad de excepciones, todas derivan de la clase Exception, además de las excepciones ya manejadas, se pueden crear propias.

HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid)

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

UNADM. Estructura de datos. Guillermo Duran Garcia AL Actividad 2. Identificación de errores en métodos de ordenación

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Solucion al Examen de Fundamentos de Computadores y Lenguajes

Taller de Programación I. Tema 02: Programación en Java, estructuras iterativas y condicionales

Programación en JAVA. Ejercicios de SELECCIÓN

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

Ejercicios de Programación Tema 7. Programación Orientada a Objetos

Examen escrito de Programación 1

Arreglos de objetos y ArrayList. Archivos en Java Transversal Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Parte I: Programación en un lenguaje orientado a objetos

Tema 3. Estructuras de control y programación estructurada

Guía - Taller # 2 (JAVA)

Tema 7.- Fundamentos de la Programación Orientada a Objetos

PRACTICA 4. MANEJO DE ARCHIVOS II

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Examen de prácticas de Programación 1

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

Tema 2. El lenguaje de programación Java (Parte 1)

Manejo de Excepciones

INDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases

o Una clase es un tipo al cual pertenecen objetos o instancias de la clase.

PROGRAMACIÓN ORIENTADA A OBJETOS. Java se parece mucho a C pero sin todo lo que nos traía problemas.

Java Básico. Métodos estáticos

Prueba N o 1. Programación II

Instrucción de selección múltiple switch.

Práctica 10a. Práctica 10a. José M. Ordax

CUADERNILLO DE PRÁCTICAS LENGUAJE DE PROGRAMACIÓN: JAVA COMPILADOR: NETBEANS IDE 6.9.1

Instituto Técnico Jesús Obrero 4to año Programación Profesor: Luis Vallenilla

3.3 Conceptos Básicos del Lenguaje Java

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Solución al Examen de Fundamentos de Computadores y Lenguajes

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Bloque II. Elementos del lenguaje de programación Java

Colas. 5.1 Implementación

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos

Elementos léxicos del lenguaje de programación Java

Transcripción:

PROGRAMACION I Archivos directos Un archivo relativo (directo) consiste en una colección de registros de longitud fija almacenados uno al lado del otro en un dispositivo de almacenamiento de acceso directo. Cada registro en un archivo de organización relativa se puede referir por medio de un número -entero- de dirección, el cual indica su distancia o desplazamiento desde el origen del archivo. Java considera al archivo una secuencia de bytes. Es importante establecer el tipo de datos de cada campo del registro lógico y el tamaño de cada registro. Las operaciones que se realizan con los archivos directos son: creación, altas, bajas, modificaciones, consultas.

Tamaño de campos Char - 2 bytes Int - 4 bytes String - tamaño del String + 2 bytes Double - 8 bytes Boolean - 1 byte

Clase Random Random define métodos para facilitar proceso de archivos de acceso directo. Crea el objeto ligado al archivo que se pasa como 1º parámetro, el 2º parámetro es el modo de apertura, lectura(r) o lectura/escritura(rw). Métodos getfilepointer() posicion actual del puntero del archivo. Seek() desplaza el puntero n bytes tomando como origen el byte 0. Length() tamaño actual del archivo

Métodos de acceso a) Método mapeo directo Cuando la clave = numero de registro. Ejemplos para posicionar en el registro Tamreg*(clave -1) Tamreg*clave tamreg b) Metodo del residuo (Clave%divisor)+1 El divisor es un numero primo inmediatamente menor o mayor al total de registros del archivo. El residuo es el numero hash buscado.

// la Clase de registro del archivo import java.io.*; public class Libro{ private int cod_lib;// tamaño 4 private string titulo;//tamaño 40+2(se guarda la longitud de la cadena) private int cantidad;//tamaño 4 private boolean estado; // tamaño 1 private int MAXARCHIVO = 100; // constante que indica la máxima cantidad de registros que va a tener el archivo private final int TAMREG = 51; // constante cuyo valor es el tamaño de cada registro (51= 4 + 42 + 4 + 1) public libro(){; // constructor de la clase, en este caso no realiza ninguna acción // este metodo asigna los valores a recibe como parámetro a los atributos correspondientes

// primero se posiciona según el valor del código, y luego agrega un registro al archivo que recibe como parámetro public void agregarreg(randomaccessfile archi)throws IOException{ archi.seek(posicionarenreg(codlibro)) ; archi.writeint(codlibro); archi.writeutf(titulo); archi.writeint(cantidad); archi.writeboolean(estado); // calcula y retorna el inicio del numero de registro que recibe como parámetro public int posicionarenreg(int cod) { return(tamreg*(cod-1)); // asigna a cada atributo los valores que lee del archivo que recibe como parámetro public void leerreg(randomaccessfile archi)throws IOException{ codlibro = archi.readint(); titulo = archi.readutf(); cantidad = archi.readint(); estado = archi.readboolean();

// calcula y retorna una cadena de longitud "c", en el caso de ser mas larga que el valor de "c" lo corta, en el caso de ser mas corta rellena los espacios faltantes con blancos public String ajustarstring(string s, int c) { if(s.length() > c) { s = s.substring(0,c); else { int i = s.length(); while(i <= c) { s = s + " "; return s; i ++;

public class LibroApp { File archivo = new File( Libro.dat"); RandomAccessFile archli = null; Libro MiLi = new Libro(); Scanner entrada = new Scanner(System.in);

public void altas(){ try{ boolean mas = true, ok = true; while(mas){ ok = valcodli (); if (ok){ ok = valtitulo(); if (ok){ ok = valcanti(); if (ok && confirmar()){ miprod.grabarreg(archli); mas = continuar(); catch(ioexception e){ System.out.println("Excepcion de entrada/salida");

Validación public boolean valcodli() throws IOException { boolean bien = true, continuar = true; while (continuar){ System.out.print("\n Codigo de Libro: " ); mili.setcod_lib(integer.parseint(entrada.nextline())); if((mili.getcod_lib () <= 0 ) (mili.getcod_lib () > mili.gettamreg()) ) {prt("debe ingresar un valor mayo que cero"); continuar = continuar();bien = continuar;//dato no valido else{ if(buscarregistro(mili.getcod_lib())){ prt( El código ingresado ya existe"); continuar = continuar(); bien = continuar; else {continuar = false; bien = true; return bien;

public void listado() throws IOException{ try{ System.out.println("===**Listado **==="); System.out.println("--------------------------------------------------------------"); archdi.seek(0);// se posiciona el puntero en el byte 0 int Nreg=0; while(true){ Nreg=Nreg+1; archli.seek(mili.posicionarenreg(nreg)); MiLi.leerReg(archLi); if (MiLi.getEstado()){ MiLi.mostrarDatos(); catch(eofexception eof){ System.out.println("Fin de archivo"); catch(ioexception e){ System.out.println("Excepcion de entrada/salida");

public void abrirarchivos(){ try{ archli = new RandomAccessFile(archivo, "rw"); catch (IOException e) { System.out.println("El archivo no se pudo Abrir"); public void cerrararchivos(){ try{ archli.close(); catch (IOException e) { System.out.println("El archivo no se pudo Cerrar");

public void Menu() throws IOException{ abrirarchivos(); int op=99; do{ switch(op){ case 1: altas();break; case 2: Bajas();break; case 3: modificaciones();break; case 4:consulta();break; case 5: listado();break; case 0: break; MostrarOpciones(); op=integer.parseint(entrada.readline()); while(op!=0); cerrararchivos();