feed twitter facebook LinkedIn facebook

Java » Renombrar un fichero con Java IO

Noviembre 25, 2006 por Víctor Cuervo . 25239 visitas 29 Comentarios Imprimir Imprimir

Entre las muchas operativas que se pueden hacer sobre un fichero tenemos el renombrado de un fichero. Para ello la librería de Java, Java IO, nos ofrece un método sobre la clase File.

Si recordamos un poco la filosofía de la clase Java IO veremos que la clase File representa la abstracción de un fichero o directorio independientemente del sistema de ficheros que tengamos por debajo.

Lo primero que tenemos que hacer es instanciar la clase File sobre el fichero que queramos realizar el renombrado. Para ello utilizamos el constructor de la clase File, como podemos ver en la siguiente línea de código:

File f1 = new File("fichero1.txt");

Lo siguiente será instanciar una nueva clase File con el nombre del fichero que queramos poner. Veámos la línea de código:

File f2 = new File("fichero2.txt");

Con las dos abstraciones de los ficheros solo nos quedará el ejecutar el método .renameTo(File) sobre el primer fichero. El método .renameTo(File) recibe como parámetro un objeto File con el nuevo nombre. El que nosotros hemos llamado f2

boolean correcto = f1.renameTo(f2);

El método .renameTo(File) devuelve un valor booleano indicando si se ha podido realizar el renombrado, o no. A si que para finalizar validaremos la variable booleana con el fin de dar información al usario.

if (correcto)
  System.out.println("El renombrado ha sido correcto");
else
  System.out.println("El renombrado no se ha podido realizar");
Foro sobre Java
Foro sobre Java
tags: , , , ,

Artículos relacionados:

29 comentarios »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

1 2 3
  1. José A. Alfaro
    Mayo 4, 2007 #

    No funciona en Windows XP ¿Porque?

  2. lineadecodigo
    Mayo 5, 2007 #

    José debería de funcionar en cualquier sistema operativo que soporte la máquina virtual de Java (JVM). ¿Qué error te da? A ver si averiguamos que sucede.

  3. erny
    Mayo 7, 2007 #

    estoy deacuerdo no importa que sistema operativo manejes recuerda la frase de java.

  4. claudio
    Mayo 10, 2007 #

    /**
    * @(#)Archivo_tarea.java
    *
    *
    * @author
    * @version 1.00 2007/5/7
    */

    import java.io.*;
    public class Archivo_tarea{

    int menu()throws IOException {

    int x=0, cont=1;

    BufferedReader lect = new BufferedReader (new InputStreamReader (System.in));
    do{
    System.out.println(“MENU”);
    System.out.println(“1.-CREAR DIRECTORIO”);
    System.out.println(“2.-BUSCAR UN ARCHIVO”);
    System.out.println(“3.-LISTAR UN DIRECTORIO”);
    System.out.println(“4.-BORRAR UN ARCHIVO”);
    System.out.println(“5.-CAMBIAR NOMMBRE A ARCHIVO”);
    System.out.println(“6.-SALIR”);
    do{
    try{
    System.out.println(“INGRESE SU OPCION”);
    x=Integer.parseInt(lect.readLine());
    cont=1;
    }catch(NumberFormatException lectura){
    System.out.println(“ERROR : “+lectura.getMessage());
    cont=0;
    System.out.println(“REINGRESA”);
    }
    }while(cont==0);
    }while((x5));
    return(x);
    }

    public static void main (String abc[])throws IOException{
    int opc=0;

    Archivo_tarea tar = new Archivo_tarea();

    do{
    opc=tar.menu();

    switch(opc){

    case 1:
    String dir;
    String destino;

    BufferedReader lect2 = new BufferedReader (new InputStreamReader (System.in));
    System.out.println(“Ingrese destino del directorio”);
    destino = (lect2.readLine());

    System.out.println(“Ingrese nombre al directorio “);
    dir = (lect2.readLine());

    File archivo = new File (destino+dir);

    if(archivo.canWrite()){

    if(archivo.mkdir()){
    System.out.println(“EL DIRECTORIO FUE CREADO”);
    }
    else
    System.out.println(“No pudo ser creado”);
    }
    else{
    System.out.println(“EL destino no puede ser escrito”);
    }

    break;

    case 2:
    String buscar;
    String ruta;

    BufferedReader lect3 = new BufferedReader (new InputStreamReader(System.in));

    System.out.println(“Ingrese la RUTA del archivo”);
    ruta = (lect3.readLine());

    System.out.println(“Ingrese el nombre de un archivo”);
    buscar = (lect3.readLine());

    File archivoabuscar = new File(ruta+buscar);

    if(archivoabuscar.exists()){
    System.out.println(“El archivo existe”);
    System.out.println(“Y su RUTA es :”+archivoabuscar.getAbsolutePath());
    }
    else{
    System.out.println(“El archivo no existe”);
    }
    break;

    case 3:
    String buscardir;

    BufferedReader lect4 = new BufferedReader (new InputStreamReader(System.in));
    System.out.println(“Ingrese Ruta del directorio”);
    buscardir=(lect4.readLine());

    File archivo2 = new File(“..//”);

    String[] lista=archivo2.list();

    for(int i=0; i2));

    if(opcionborrar==1){ //si esta realmente seguro

    if(archivoborrar.exists()){
    if(archivoborrar.delete()){
    System.out.println(“Borrado con exito”);
    }
    else //sino puede ser borrado
    System.out.println(“No se puede borrar el archivo intentelo de nuevo”);
    } //sino existe el archivo
    else{
    System.out.println(“Archivo no EXISTE”);
    }
    }

    else // sino esta seguro de borrar
    break;

    break;

    case 5:
    String cambiar;
    String nombrenuevo;
    String directorio;
    boolean correcto;

    BufferedReader lect6 = new BufferedReader (new InputStreamReader(System.in));

    System.out.println(“Ingrese el directorio del archivo a cambiar”);
    directorio = (lect6.readLine());

    System.out.println(“Ingrese el nombre del archivo a cambiar”);
    cambiar = (lect6.readLine());

    File archivoacambiar = new File(directorio+cambiar);

    if(archivoacambiar.exists()){
    System.out.println(“Ingrese el nuevo nombre”);
    nombrenuevo = (lect6.readLine());

    File archivonuevo = new File(nombrenuevo);

    correcto=archivoacambiar.renameTo(archivo);

    if(correcto){ //******** NO SE PUEDE EJECUTAR POR ESTA LINEA

    System.out.println(“CAMBIADO CON EXITO”);
    }
    else{

    System.out.println(“NO SE PUDO CAMBIAR EL NOMBRE”);
    }
    }

    break;

    case 6:
    System.out.println(“CHAOLIN”);
    break;

    }///////////*********************FIN SWITCH

    }while(opc!=5);//*************** SE ACABA EL PROGRAMA
    } //********************* FIN MAIN

    }//**************************FIN CLASS Archivo_tarea

  5. claudio
    Mayo 10, 2007 #

    boolean correcto;………………..

    File archivoacambiar = new File(directorio+cambiar);

    if(archivoacambiar.exists()){
    System.out.println(“Ingrese el nuevo nombre”);
    nombrenuevo = (lect6.readLine());

    File archivonuevo = new File(nombrenuevo);

    correcto=archivoacambiar.renameTo(archivo);

    if(correcto){ //******** NO SE PUEDE EJECUTAR POR ESTA LINEA

    System.out.println(“CAMBIADO CON EXITO”);
    }
    else{

    System.out.println(“NO SE PUDO CAMBIAR EL NOMBRE”);
    }
    }

  6. Edwind
    Agosto 10, 2007 #

    Hola a todos, hay forma de modificar el contenido de un archivo? lo q quiero es agregarle una linea al principio y al final pero sin borrarme el contenido incial, esto se puede en java? lo q se me ocurre es leerlo, guardar su contenido en un buffer, luego escribir un nuevo archivo y sobre este hacer las modificaciones y copiar lo viejo. hay una mejor forma? saludos y gracias

  7. Mariela
    Septiembre 3, 2007 #

    FileWriter file = new FileWriter(“File.aux”, true);

    El true en el constructor indica que se le agregaran lineas al archivo, asi no sobreescribe su contenido.

  8. carlos
    Septiembre 28, 2007 #

    File f1 = new File(“fichero1.txt”);
    File f2 = new File(“fichero2.txt”);
    boolean correcto = f1.renameTo(f2);

    Suponiendo que esten en el mismo directorio, ¿f1 sobreescribe a f2?

  9. Carlos
    Septiembre 28, 2007 #

    Solucionado

    No se sobreescribe, si existe f2 no se cambia el nombre de f1, para que funcione, el fichero f2 no debe existir, debe borrarse antes de cambiarle el nombre a f1.

    Gracias

  10. Omar
    Marzo 21, 2008 #

    Hola , quiero borrar el contenido de un archivo creado
    con q instruccion lo hago ???

1 2 3

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*