Vous êtes sur la page 1sur 5

Java proporciona un numero amplio de clases, muy tiles para trabajar sobre ficheros a travs del paquete Java.

io . Para ver un ejemplo del poder de este paquete vamos a crear una pequea clase que nos permita crear y eliminar ficheros adems que posibilite buscar, modificar, y eliminar registros dentro del archivo. Comencemos por crear el fichero, pero primero debemos hacer uso de la clase File, que es la que nos proporciona informacin a cerca del archivo: view plainprint? /*Creo un objeto File. Recibe como parmetro la ruta completa con el *nombre del fichero Para los usuarios de Windows la ruta seria *mas o menos as:"c:\\MiFichero.txt"*/ File Ffichero=new File("/home/luis/Documentos/MiFichero.txt"); La siguiente funcin crea un fichero si no existe y escribe en el una cadena que recibe como parmetro. view plainprint? public static void EcribirFichero(File Ffichero,String SCadena){ try { //Si no Existe el fichero lo crea if(!Ffichero.exists()){ Ffichero.createNewFile(); } /*Abre un Flujo de escritura,sobre el fichero con codificacion utf-8. *Adems en el pedazo de sentencia "FileOutputStream(Ffichero,true)", *true es por si existe el fichero seguir aadiendo texto y no borrar lo que tenia*/ BufferedWriter Fescribe=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(Ffichero,true), "utf-8")); /*Escribe en el fichero la cadena que recibe la funcin. *el string "\r\n" significa salto de linea*/ Fescribe.write(SCadena + "\r\n"); //Cierra el flujo de escritura Fescribe.close(); } catch (Exception ex) { //Captura un posible error le imprime en pantalla System.out.println(ex.getMessage()); } } La siguiente funcin permite leer el contenido de un fichero de texto linea a linea view plainprint? /*Funcin que lee el contenido de un fichero de texto *Parmetro:Ffichero. Objeto de la clase file donde se va a leer*/ public static void LeerFichero(File Ffichero){ try { /*Si existe el fichero*/ if(Ffichero.exists()){

/*Abre un flujo de lectura a el fichero*/ BufferedReader Flee= new BufferedReader(new FileReader(Ffichero)); String Slinea; System.out.println("**********Leyendo Fichero***********"); /*Lee el fichero linea a linea hasta llegar a la ultima*/ while((Slinea=Flee.readLine())!=null) { /*Imprime la linea leida*/ System.out.println(Slinea); } System.out.println("*********Fin Leer Fichero**********"); /*Cierra el flujo*/ Flee.close(); }else{ System.out.println("Fichero No Existe"); } } catch (Exception ex) { /*Captura un posible error y le imprime en pantalla*/ System.out.println(ex.getMessage()); } } Para borrar un archivo usamos este mtodo. view plainprint? /* Mtodo que borra un fichero si existe *Parmetro:Ffichero. Objeto de la clase file donde se va a borrar */ public static void BorrarFichero(File Ffichero){ try { /*Si existe el fichero*/ if(Ffichero.exists()){ /*Borra el fichero*/ Ffichero.delete(); System.out.println("Fichero Borrado con Exito"); } } catch (Exception ex) { /*Captura un posible error y le imprime en pantalla*/ System.out.println(ex.getMessage()); } } Para modificar un registro dentro de un fichero. view plainprint? /*********************************************************** * Modificar un fichero de texto, consiste en leer un archivo *y escribir su con tenido en uno nuevo llamado X, excepto la *linea a modificar que se remplaza con la linea nueva.Luego

*se borra el fichero inicial y se renombra el nuevo fichero *con el nombre del archivo inicial *********************************************************** *PARMETROS: *FficheroAntiguo:Objeto File del fichero a modificar *Satigualinea:Linea que se busca para modificar *Snuevalinea:Linea con la que se va a remplazar la vieja ***********************************************************/ public static void ModificarFichero(File FficheroAntiguo,String Satigualinea,String Snuevalinea){ /*Obtengo un numero aleatorio*/ Random numaleatorio= new Random(3816L); /*Creo un nombre para el nuevo fichero apartir del *numero aleatorio*/ String SnombFichNuev=FficheroAntiguo.getParent()+"/auxiliar"+String.valueOf(Math.abs(numale atorio.nextInt()))+".txt"; /*Crea un objeto File para el fichero nuevo*/ File FficheroNuevo=new File(SnombFichNuev); try { /*Si existe el fichero inical*/ if(FficheroAntiguo.exists()){ /*Abro un flujo de lectura*/ BufferedReader Flee= new BufferedReader(new FileReader(FficheroAntiguo)); String Slinea; /*Recorro el fichero de texto linea a linea*/ while((Slinea=Flee.readLine())!=null) { /*Si la lia obtenida es igual al la bucada *para modificar*/ if (Slinea.toUpperCase().trim().equals(Satigualinea.toUpperCase().trim())) { /*Escribo la nueva linea en vez de la que tenia*/ EcribirFichero(FficheroNuevo,Snuevalinea); }else{ /*Escribo la linea antigua*/ EcribirFichero(FficheroNuevo,Slinea); } } /*Obtengo el nombre del fichero inicial*/ String SnomAntiguo=FficheroAntiguo.getName(); /*Borro el fichero inicial*/ BorrarFichero(FficheroAntiguo); /*renombro el nuevo fichero con el nombre del *fichero inicial*/ FficheroNuevo.renameTo(FficheroAntiguo);

/*Cierro el flujo de lectura*/ Flee.close(); }else{ System.out.println("Fichero No Existe"); } } catch (Exception ex) { /*Captura un posible error y le imprime en pantalla*/ System.out.println(ex.getMessage()); } } Para eliminar un registro dentro del fichero view plainprint? /*********************************************************** *Eliminar un registro dentro de un fichero de texto, *consiste en leer un archivo y escribir su contenido en uno *nuevo llamado X, excepto la linea a eliminar.Luego se borra *el fichero inicial y se renombra el nuevo fichero con el *nombre del archivo inicial *********************************************************** *PARMETROS: *FficheroAntiguo:Objeto File del fichero a eliminar el reg *Satigualinea:Linea que se busca para eliminar ***********************************************************/ public static void EliminarRegistro(File FficheroAntiguo,String Satigualinea){ /*Obtengo un numero aleatorio*/ Random numaleatorio= new Random(3816L); /*Creo un nombre para el nuevo fichero apartir del *numero aleatorio*/ String SnombFichNuev=FficheroAntiguo.getParent()+"/auxiliar"+String.valueOf(Math.abs(numale atorio.nextInt()))+".txt"; /*Crea un objeto File para el fichero nuevo*/ File FficheroNuevo=new File(SnombFichNuev); try { /*Si existe el fichero inical*/ if(FficheroAntiguo.exists()){ /*Abro un flujo de lectura*/ BufferedReader Flee= new BufferedReader(new FileReader(FficheroAntiguo)); String Slinea; /*Recorro el fichero de texto linea a linea*/ while((Slinea=Flee.readLine())!=null) { /*Si la linea obtenida es distinta al la buscada *para eliminar*/ if (!Slinea.toUpperCase().trim().equals(Satigualinea.toUpperCase().trim())) {

/*la escribo en el fichero nuevo*/ EcribirFichero(FficheroNuevo,Slinea); }else{ /*Si es igual simple mete no hago nada*/ } } /*Obtengo el nombre del fichero inicial*/ String SnomAntiguo=FficheroAntiguo.getName(); /*Borro el fichero inicial*/ BorrarFichero(FficheroAntiguo); /*renombro el nuevo fichero con el nombre del fichero inicial*/ FficheroNuevo.renameTo(FficheroAntiguo); /*Cierro el flujo de lectura*/ Flee.close(); }else{ System.out.println("Fichero No Existe"); } } catch (Exception ex) { System.out.println(ex.getMessage()); } }

Vous aimerez peut-être aussi