Java » Renombrar un fichero con Java IO
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 |
Artículos relacionados:







Mayo 4, 2007 #
No funciona en Windows XP ¿Porque?
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.
Mayo 7, 2007 #
estoy deacuerdo no importa que sistema operativo manejes recuerda la frase de java.
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
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”);
}
}
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
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.
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?
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
Marzo 21, 2008 #
Hola , quiero borrar el contenido de un archivo creado
con q instruccion lo hago ???