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();
}
}