Download Archivo Directo
Document related concepts
no text concepts found
Transcript
Archivo Directo Aplicaciones 2 Integrantes: Lucero Castillo Castillo Blanca Portillo Sandoval Néstor Contreras Valencia Guadalupe Hernández Zarza Hiram Bárcenas Aguiar ¿Que es un archivo directo? Un archivo directo permite posicionar el apuntador de interno de registros, a cualquier registro determinado sin necesidad de pasar por todos los registros anteriores. Se dice que un archivo es de acceso u organización directa, cuando para acceder a un registro n cual quiera no se tiene que pasar por los N-1 registros anteriores. Características: En java archivos directos pertenecen a la clase RANDOMACCESSFILE, que es la que permite ver un archivo como un arreglo de caracteres y leer o escribir zonas del arreglo. Tiene una habilidad de accesar a archivos individuales directamente. Lo único malo que podría presentar este Archivo Directo es que puede presentar una misma dirección para diferentes valores de llave, es decir se presenta lo que se llama Colisiones. Código para Crear un Archivo Directo en Java CLASE DONDE SE ENCUENTRA EL “MENU” package archivo; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner lectura = new Scanner(System.in); String [] vector= new String[30]; for(int x=0;x<=vector.length-1;x++){ vector[x]=" "; } int opc; do{ System.out.println("elige la opcion deseada"); System.out.println("1:escribe fichero"); System.out.println("2:lee fichero"); System.out.println("3:Buscarrmodificar"); int opc1=lectura.nextInt(); switch(opc1){ case 1: EscribeFichero esc =new EscribeFichero("nestor.txt",vector); break; case 2: LeeFichero lee =new LeeFichero("nestor.txt"); break; }System.out.println("\n Deceas regresar al inicio,teclea un uno(1) es = a si "); opc =lectura.nextInt(); } while (opc ==1); System.out.println("\nFin del programa"); System.out.println("los siento tienes que teclear un uno "); } } CLASE DONDE SE INGRESAN LOS DATOS import java.io.FileWriter; import java.io.PrintWriter; import java.util.Scanner; public class EscribeFichero { public EscribeFichero(String nombre,String []vector){ FileWriter fichero = null; PrintWriter pw = null; int opc, posicion,clave; Scanner lec =new Scanner(System.in); try { fichero = new FileWriter(nombre); Scanner lectura= new Scanner(System.in); System.out.println("dame la clave "); clave=lectura.nextInt(); posicion=clave+1; if(posicion>=vector.length-1){ posicion=0; } if(vector[posicion].equals(" ")){ System.out.println("dame el nombre: "); String nombre1=lectura.next(); System.out.println("dame la edad: "); String edad=lectura.next(); vector[posicion]= clave+" "+nombre1+" "+edad; }else{ System.out.println("La posicion solicitada esta ocupada"); } pw = new PrintWriter(fichero); pw = new PrintWriter(fichero); for(int x=0;x<=vector.length-1;x++){ pw.println("los datos son "+vector[x]); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != fichero) fichero.close(); } catch (Exception e2) { e2.printStackTrace(); } } } } CLASE DONDE SE LEE EL ARCHIVO CON LOS REGISTROS ALMACENADOS import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class LeeFichero { public LeeFichero(String nombre){ File archivo =null; FileReader fr = null; BufferedReader br = null; [Manejo de Archivos] Equipo 3 try { archivo = new File (nombre); fr = new FileReader (archivo); br = new BufferedReader(fr); String linea; while((linea=br.readLine())!=null) System.out.println(linea); } catch(Exception e){ e.printStackTrace(); }finally{ try{ if( null != fr ){ fr.close(); } }catch (Exception e2){ e2.printStackTrace(); } }