Renombrar un fichero con Java IO Noviembre 25, 2006
Publicado por lineadecodigo en : Java , trackbackEntre 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");
Articulos Similares:
- Borrar un fichero con Java
- Borrar un directorio con Java
- Saber si una ruta es un directorio con Java
- Crear un fichero en Java
- Obtener ruta absoluta de un fichero
Enviar entrada por email
|
Imprimir
| 19871 visitas





Comentarios»
No funciona en Windows XP ¿Porque?
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.
estoy deacuerdo no importa que sistema operativo manejes recuerda la frase de java.
/**
* @(#)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
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”);
}
}
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
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.
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?
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
Hola , quiero borrar el contenido de un archivo creado
con q instruccion lo hago ???
@Omar, para borrar un fichero puedes leerte “Borrar un fichero con Java“.
Espero que te sirva de ayuda.
si f1 y f2 estan en directorios distintos, f1 es un fichero que existe y quiero que se cree uno igual en la ruta f2 con el nombre nuevo, se puede?
Me sale error en esta parte…Me podrian ayudar?
for(int i=0;i2));
‘,’ expeted
ilegal start of expresion
¿como le puedo borrar la extension a un archivo? Lo hago asi:
for (int x=0;x<ficheros.length;x++){
String fichero=ficheros[x];
String[] f=fichero.split(“\\.”);
for (int i=0;i<f.length;i++){
System.out.println(f[i]);
if (f[i].compareToIgnoreCase(“ACE”)==0){
File fich=new File(fichero);
File fich2=new File(f[0]+”.process”);
try{
boolean ok=fich.renameTo(fich2);
System.out.println(fich2.getName());
}
catch (Exception e){
System.out.println(“no se ha podido renombrar”);
}
}
}
y en la consola sale bien, pero voy a la carpeta y siguen con extensión ACE
deseo urgentemente renombrar un directorio pero desde linea de comandos es decir debera recibir un parametro y renombrara el directorio con el mismo nombre del parametro que le proporcione
anexo el codigo para añadir y borrar me falta el de renombrar
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pasoparametros;
import java.io.File;
import java.io.*;
/**
*
* @author MR.INNOVASISTEMS
*/
public class AddDir {
public static void main(String[] args) {
{
try{
for( int i=0; i < args.length; i++ )
//System.out.println(args[i]);
System.out.println(new File(args[i]).mkdir());
}
catch(Exception e){
System.out.println(“Error fatal verifica el codigo”);
}
}
}
}
aca termina crear directorios…………..
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pasoparametros;
/**
*
* @author MR.INNOVASISTEMS
*/
public class DelDir {
public static void main(String[] args) {
try{
for( int i=0; i < args.length; i++ )
//System.out.println(args[i]);
System.out.println(new java.io.File(args[i]).delete());
}
catch(Exception e){
System.out.println(“Error fatal verifica el codigo”);
}
}
}
// aca termina borrar directorios
// aca comienza mi problema como borro los directorios
lo que he hecho
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pasoparametros;
import java.io.File;
/**
*
* @author MR.INNOVASISTEMS
*/
public class rendir {
public static void main(String[] args) {
try{
//for( int i=0; i < args.length; i++ )
File primero = new File(args[0]);
File segundo = new File(args[1]);
boolean resultado = primero.renameTo(segundo);
if(resultado)
System.out.println(“El renombrado ha sido correcto”);
else
System.out.println(“El renombrado no se ha podido realizar”);
}
catch(Exception e){
System.out.println(“Error fatal verifica el codigo”);
}
}
}
hola necesito sobre escribir datos en un archivo tipo txt (block de notas), quiero es esto, ejemplo: tengo en el blok de notas esto:
1//numero de registrados
1666668//cedula
Tomas Mendoza// nombre
Ingeniero///
entonces yo en mi programa tengo un boton q es para modificar, como hago para los valores obtenidos por el usuario los sobreescriba alli, ejemplo, si quiero modificar mi nombre por Anres Quintana. deberia salir asi ahora cuando abra el block de notas (archivo txt)
1//numero de registrados
1666668//cedula
Andres Quintana// nombre
Ingeniero///
Yo haré una pregunta más pesada..
Bajé de una página de internet las homilias de un padre, en formato mp3, legalmente. Resulta que en la página están ordenadas de la más nueva(arrva) a la más vieja (abajo).
Resulta que quiero modificar los 100 archivos mp3 que bajé, para que según el orden en que fueron recitadas esas homilias quede con “001 ” la más vieja homilia y con “100″ la más nueva.
El problema es que si ordeno los archivos por fecha de creación no quedan exactamente en orden porque se bajaban de cuatro en cuatro, y uno de esos cuatro tenía menor tamaño, y por ende, se bajaba primero.
Quisiera saber cómo, obtener los strings de las URLs de los hyperlinks de la página de internet con terminación ‘.mp3′ almacenándolos yo en un array de strings y en con ese array comparar y ordenar mi array de files que puedo obtener con las funciones de java.io.File de los mp3’s que bajé, para ahora si poderlos renombrar por orden de antigüedad.
La página es, http://podcast.evangelizacion.org.mx/podcast-homilias.php.
Un ejemplo sería:
URL: ‘http://podcast.evangelizacion.org.mx/mp3/homilias/homilia_No_habra_excusas.mp3′
PathArchivo: ‘C:\homiliasEcaro\homilia_No_habra_excusas.mp3′
NuevoNombreArchivo: ‘C:\homiliasEcaro\100 homilia_No_habra_excusas.mp3′
Gracias.
hola a todos kisiera saber si alguien ha podido renombrar una carpeta o directorio desde una aplicacion java…
PDTA: la carpeta a renombrar tiene archivos y mas carpetas dentro…
Hola a todos necesito hacer un codigo para renombrar masivamente archivos y/o carpetas por linea de comando.la sintaxis de comando es:
rename (listaopciones) (patronDE renombrado) (carpetainicial)
opciones: r para renombrar recursivemente en los subdirectorios.
a renombra archivos
c renombra carpetas
patron: son codificaciones q en caso de encontrarse en el patron ,reemplazara en esa misma posicion a su correspondiente descripcion en el nombre final
carpeta inicial: es la capeta desde la se inicia el renombrado.
buenos dias quiero conseguir codigo para que me coja una carpeta de musica mp3 y me la aga aleatoria!!!!
os agradeceria que me facilitarais ese misterioso codigo por que no doy con el y nos estamos vlviendo lokos mi compi y yo!!!!
estamos asiendo un programa en java que nos piden un reproductor de musica….mp3!!!
bueno muxisimas grasias!!!!!
ah, se me olvidava!!!lo necesito urgente menteeeeeee!!!!
muxiximas asias de verdad!!!
Hola a todos,
Me gustaria saber si es posible borrar el contenido de un fichero.txt en java, me he leido la entrada borrar fichero en java, pero lo que hace es borrarte el fichero entero, yo lo que quiero es que el fichero no se borre del pc, sino que se borre el contenido
Contenido inicial:
Hola que tal?
Contenido Final:
Gracias!
Vanessa yo tengo un codigo que hace eso, lo hice para la universidad. Desgraciadamente tus faltas de ortografía me impiden moralmente ayudarte. Aprende a escribir.
Hola linea de codigo! Tengo un problema y espero que me ayude..
He creado un programa con eclipse, en ubuntu y funciona perfectamente..Y luego cuando se lo entrego a la persona que lo va ha utilizar ( con windows xp) me doy cuenta de que no funcina como debería..yo creo que el problema es en los ficheros,al renombrarlos y eso..Yo pesaba que era indiferente el sistema op. que se utiliza pero me he dado cuenta de que no es así.. Sabe mas sobre este tema?
Gracias
Los path cambian de un SO a otro. Tienes que tener cuidado en como los estés utilizando.
La siguiente línea de código
System.getProperty(“path.separator”);
te dice qué separador tiene el SO sobre el que esté corriendo el programa y este lo puedes utilizar para modificar los path de tus ficheros.
Espero que esto te pueda orientar.
Hola de nuevo!!Estoy probando esta linea de codigo System.getProperty(“path.separator”);
pero me da error en path(No me la reconoce)…
Y bueno la verdad es que yo estoy creando los ficheros en el mismo directorio de la aplicación , así que no uso ningun path. el problema es que en Ubuntu funciona perfectamente y en Windows XP No….
Sigo buscando soluciones…..
Gracias,si tiene alguna idea mas estaré encantado de escucharla…