Sunteți pe pagina 1din 3

INGENIERIA DE SISTEMAS

ESTRUCTURAS DE DATOS (Ficheros)

MANEJO DE ARCHIVOS EN JAVA


LEER Y ESCRIBIR OBJETOS EN ARCHIVOS
Un archivo es un grupo de datos estructurados que son almacenados en algn medio de
almacenamiento y pueden ser usados por las aplicaciones (programas). La forma en que una
computadora organiza, da nombre, almacena y manipula los archivos se denomina sistema de
archivos y suele depender del Sistema Operativo y del medio de almacenamiento (disco duro,
disco externo, memorias USB, etc)
La caracterstica principal de los archivos es el Nombre y su extensin,
El nombre es la identificacin del archivo y su extensin indica el tipo de archivo al que
corresponde, la extensin generalmente es de tres caracteres, por ejemplo:
Nombre.doc es que un archivo tipo documento (de Microsoft Word)
Nombre.mp3 es un archivo de msica
Nombre.xls es un archivo de hoja de clculo (Microsoft Excel)
Nombre.txt es un archivo de texto
Serializacin de un Objeto Implementar serializable
Para que un programa pueda convertir un objeto en un montn de bytes y pueda luego
recuperarlo, el objeto necesita ser serializable. Para que un objeto sea serializable basta que
implemente la interfaz Serializable, como la interfaz Serializable no tiene mtodos, es muy sencillo
implementarla, basta con un implements Serializable.
Las clases FIleInputStream y FileOutputStream
Gran parte de la entrada y salida de los programas se realiza basndose en archivos y para ello
java.io aporta dos clases. Una para ficheros de entrada, FileInputStream, y otra para ficheros de
salida, FileOutputStream. La diferencia entre ficheros de entrada y de salida es fundamental,
pues situaciones como intentar leer de un fichero de salida o viceversa pueden generar en errores.
Las clases ObjectInputStream y ObjectOutputStream
Son filtros de secuencia que permiten leer y escribir objetos de una corriente de datos orientada a
bytes. Solo tiene sentido si los datos almacenados son objetos.
El mtodo readObject devuelve un object de los datos de la entrada.
Para controlar las excepciones mediante try catch, opcionalmente podemos controlar mediante
throws Exception en la funcin que usaremos

INGENIERIA DE SISTEMAS

ESTRUCTURAS DE DATOS (Ficheros)

A continuacin se muestra un programa donde se hace uso de las clases mencionadas mediante
listas enlazadas
import java.io.*;
public class Nodo implements Serializable{
private String nombre;
private int nota;
Nodo enlace;
Nodo(String n,int no)
{
nombre=n;
nota=no;
enlace=null;
}
String getNombre()
{
return nombre;
}
int getNota()
{
return nota;
}
}
import java.io.*;
public class Lista{
Nodo cab;
File f=new File("d:\\notas.not");
void cargar()throws Exception
{
if(f.exists())
{
FileInputStream fis=new FileInputStream(f);
ObjectInputStream ois=new ObjectInputStream(fis);
cab=(Nodo)ois.readObject(); //cargamos el archivo al objeto alumno
fis.close();
ois.close();
}
Else{
f.createNewFile();
}
void insertar(String n,int no)
{
if(cab==null)
cab=new Nodo(n,no);
else
{
Nodo temp=new Nodo(n,no);
temp.enlace=cab;
cab=temp;
}
}
void mostrar()
{
Nodo aux=cab;
while(aux!=null)
{
System.out.println(aux.getNombre()+" "+aux.getNota());
aux=aux.enlace;
}
}

INGENIERIA DE SISTEMAS

ESTRUCTURAS DE DATOS (Ficheros)

void guardar()throws Exception


{
FileOutputStream fos=new FileOutputStream(f);
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(cab);
//guardamos el objeto en el archivo
//se guarda los cambios realizados en la lista
fos.close();
oos.close();
}
}
import java.util.*;
public class menu {
public static void main(String[] args) throws Exception {
Scanner en=new Scanner(System.in);
Lista alumnos=new Lista();
alumnos.cargar();
int opc=10;
while(opc!=3)
{
mostrarMenu();
opc=en.nextInt();
switch(opc)
{
case 1:
System.out.println("Inserte Nombre y Nota");
alumnos.insertar(en.next(),en.nextInt());
break;
case 2:
alumnos.mostrar();
break;
case 3:
alumnos.guardar();
break;
}
}
}
static void mostrarMenu()
{
System.out.println("--------Menu-------");
System.out.println("1. insertar");
System.out.println("2. mostrar");
System.out.println("3. Grabar y salir");
}
}

S-ar putea să vă placă și