ACTIVIDADES TEMA 3.1 1.- Realiza un programa donde utilices los métodos sobre directorios isDirectory, mkdir, mkdirs, exist, delete, list y listRoots. package ejerciciosfic herossegundotrimestr herossegundotrimestre; e; import java.io.*; /** * Clase Ejercicio 1 * * Esta clase contiene todos los metodos para trabajar con directorios, isDirectory * , mkdir, mkdirs, exist, delete, list y listRoots * * @author Jaime Solas Lara */ public class Ejercicio1 { public static void main(String args[]){ /* *Realiza un programa donde utilices los métodos sobre directorios isDirectory, mkdir, *mkdirs, exist, delete, list y listRoots. li stRoots. */ InputStreamReader flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(flujo); int opcion = 0; do { try { System.out.println("¿Que quieres hacer?"); System.out.println("1.- Saber si un directorio es un directorio"); System.out.println("2.- Crear un directorio"); System.out.println("3.- Crear ruta de directorios"); System.out.println("4.- Saber si un directorio existe"); System.out.println("5.- Borrar un directorio dado"); System.out.println("6.- Listar contenido de un directorio"); System.out.println("7.- Listar unidades"); System.out.println("8.- Salir"); System.out.println("Introduzca una opcion: "); opcion = Integer.parseInt(teclado.readLine()); switch(opcion) { case 1: System.out.println("Introduzca el nombre del directorio:"); String nombref = teclado.readLine(); //Uso del metodo isDirectory File f = new File(nombref); //El contenido de la variable cambiara a true si lo indicado es un directorio
if(f.isDirectory()) { System.out.println("Es un directorio"); } else { System.out.println("No es un directorio"); } break; case 2: System.out.println("Introduzca el nombre del directorio:"); nombref = teclado.readLine();
//Uso del metodo mkdir File f2 = new File(nombref); if(f2.mkdir()) { System.out.println("El directorio ha sido creado"); //Si la carpeta ha sido creada nos devolverá un valor true, si el directorio ya //estaba creado o no se pudo creado permanecerá en false } else { System.out.println("El directorio no ha sido creado"); } break; case 3: System.out.println("Introduzca el nombre del directorio:"); nombref = teclado.readLine(); //Uso del metodo mkdirs File f3 = new File(nombref); if(f3.mkdirs()) { System.out.println("Directorios creados"); //Si el directorio o directorios no se encuentran creados, los creará y cambiará la //variable a true, si por cualquier motivo no se pudieron crear el o los directorios //la variable almacenará el valor false } else { System.out.println("Directorios no creados"); } break; case 4: System.out.println("Introduzca el nombre del directorio:"); nombref = teclado.readLine();
//Uso del metodo exist File f4 = new File(nombref); if(f4.exists()) { System.out.println("El directorio existe"); //Si el directorio indicado existe la variable almacenará el valor true, si no almacenara //el valor false } else { System.out.println("El directorio no existe"); } break; case 5: System.out.println("Introduzca el nombre del directorio:"); nombref = teclado.readLine(); //Uso del metodo delete File f5 = new File(nombref); if(f5.delete()) { System.out.println("El fichero fue borrado"); //Si el directorio a sido borrado devolverá un valor true si no un valor false } else { System.out.println("El fichero fue creado"); } break; case 6: System.out.println("Introduzca el nombre del directorio:"); nombref = teclado.readLine(); //Uso del metodo list File f6 = new File(nombref); File [] lista = f6.listFiles(); for(int i = 0;i
} } break; case 7: //Uso del metodo listroot File f7 = new File(""); File [] lista2 = f7.listRoots(); for(int i = 0;i
} catch(IOException e) { System.out.println("Fallo E/S"); } catch(NumberFormatException e2) { System.out.println("Opcion escogida no valida"); } } while(opcion!=8); } }
2.- Realiza un programa donde utilices los métodos sobre ficheros isFile, exists, canRead, canWrite, delete, length, lastModified , renameTo, getName, getAbsolutePath y getParent. package ejerciciosficherossegundotrimestre; import java.io.*; import java.text.SimpleDateFormat; /** * Clase Ejercicio 2 * * Esta clase contiene todos los metodos para trabajar con ficheros, isFile * , exist, canRead, canWrite, delete, length, lastModified , renameTo, getName, * , getAbsolutePath y getParent * * * @author Jaime Solas Lara */ public class Ejercicio2 { public static void main(String args[]){ /* *Realiza un programa donde utilices los métodos sobre ficheros isFile, exists, canRead, *canWrite, delete, length, lastModified , renameTo, getName, getAbsolutePath y getParent */ InputStreamReader flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(flujo); int opcion = 0; String nombref; do { try { System.out.println("¿Que quieres hacer?"); System.out.println("1.- Obtener informacion de un fichero"); System.out.println("2.- Borrar un fichero"); System.out.println("3.- Renombrar un fichero"); System.out.println("4.- Salir del programa"); System.out.println("Introduzca una opcion: "); opcion = Integer.parseInt(teclado.readLine()); switch(opcion) { case 1: System.out.println("Introduzca el nombre del fichero:"); nombref = teclado.readLine(); System.out.println(infoFichero(nombref));//Llamamos al metodo para que nos proporcione informacion de un fichero dado
break; case 2: System.out.println("Introduzca el nombre del fichero:"); nombref = teclado.readLine(); File f = new File(nombref); if(f.delete()) { System.out.println("El fichero ha sido borrado");//Si el fichero ha sido borrado con existo entrá en esta condicion } else { System.out.println("El fichero no ha sido borrado"); } break; case 3: System.out.println("Introduzca el nombre del fichero a renombrar"); String nombref1 = teclado.readLine(); System.out.println("Introduzca el nuevo nombre para el fichero"); String nombref2 = teclado.readLine(); File f1 = new File(nombref1);//En esta clase file indicamos el nombre del fichero al que queremos cambiarle el nombre File f2 = new File(nombref2);//En esta clase File indicacmo el nuevo nombre del fichero boolean correcto = f1.renameTo(f2);//Usamos el metodo para cambiarlo, al usar el metodo nos devolverá true o false, el resultado se almacenará en una variable if(correcto)//Dependiendo del resutlado de la variable entrará en la condicion superior o inferior { System.out.println("El nombre ha sido cambiado correctamente"); } else { System.out.println("El nombre no ha sido cambiado cor rectamente"); } break; case 4: System.out.println("Fin del programa"); break; default: System.out.println("Opcion introducida no valida"); break; }
} catch(IOException e)//Controlamos los errores de E/S que se pudieran producir { System.out.println("Error E/S"); } catch(NumberFormatException e2)//Si no se introduce una opcion numerica sino cualquier otro tipo de expresion será controlado { System.out.println("Opcion introducida no valida"); } } while(opcion!=4);//Mientras la opcion dada sea distinta de 4 se seguirá ejecutando el bucle } /** * Metodo en el que se agrutina aquellos metodos que se pueden usar en un unico metodo, para tener un mayor orden * @return String * @param nombref Nombre del fichero al que queremos sacarle la informacion * */ public static String infoFichero(String nombref) //Le pasamos por parametro al metodo el nombre del fichero { File f = new File(nombref); String inf_fichero; String error = "\nEl nombre introducido no es un fichero o no existe\n"; if((f.isFile())&&(f.exists())) //Solo en el caso que se cumpla ambas condiciones podremos obtener la informacion del fichero { boolean plectura = f.canRead(); //Vamos obteniendo informacion referente al fichero dado boolean pescritura = f.canWrite(); long tamanio = f.length(); long ultima_mod = f.lastModified(); SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");//Debido a que el formato que nos da el metodo lasModified no es el mas adecuado usamos la clase SampleDateFormat para darselo String nombre = f.getName(); String ruta_absoluta = f.getAbsolutePath(); String directorio_padre = f.getParent(); inf_fichero = "\nPermisos de lectura:"+plectura+"\nPermisos de escritura:"+pescritura+"\nTamanio:"+tamanio+"\nUltima modificacion:"+sdf.format(ultima_mod)+"\nNombre Fichero:"+nombre+"\nRuta
absoluta:"+ruta_absoluta+"\nDirectorio Padre:"+directorio_padre+"\n";//Usamos el metodo format para aplicar el formato indicado anteriormente return inf_fichero;//Devolvemos la cadena con la informacion del fichero } else { return error; //En el caso de que el nombre dado no sea de un fichero o no exista nos devolverá una cadena con un mensaje de error } } } 3. Crea un programa que lea un directorio, compruebe que existe, muestre si tiene permiso de lectura y escritura y liste los ficheros y directorios que contiene. package ejerciciosficherossegundotrimestre; import java.io.*; /** * Clase Ejercicio 3 * * Ejercicio que se nos pide que se haga un conjunto de acciones con los directorio * leer un directorio, comprobar que existe, escritura, listar ficheros y directorios * que contiene * * @author Jaime Solas Lara */ public class Ejercicio3 { public static void main(String args[]){ /* *Crea un programa que lea un directorio, compruebe que existe, muestre si tiene permiso de *lectura, escritura, liste los ficheros y directorios que contiene. */ InputStreamReader flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(flujo); String nombred; try { System.out.println("Introduza nombre del directorio"); nombred = teclado.readLine(); System.out.println(infoDirectorio(nombred)); } catch(IOException e) { System.out.println("Error E/S"); }
catch(Exception e2) { System.out.println("Error programa"); } } /** * Metodo que obtiene la informacion de un directorio dado * @param nombred nombred Nombre del directorio del que queremos sacar informacion * @return String * */ public static String infoDirectorio(String nombred) { File f = new File(nombred); String info_directorio; String error = "\nEl nombre introducido no es un directorio o no existe\n"; if((f.isDirectory())&&(f.exists())) { boolean plectura = f.canRead(); boolean pescritura = f.canWrite(); String listado=""; File [] lista = f.listFiles();//Cresmos un array y en el almacenamos el listado de ficheros for(int i = 0;i
4.- Realiza un programa que guarde en un fichero (amigos.txt) los nombres guardados en un array de String, cada nombre en una línea, para ello se graba en el fichero el retorno de carro y la línea (“\r\n”) (“\r es el retorno de carro y \n el carácter de nueva línea). (utiliza las clases FileWriter,y FileReader, BufferedReader. Después, vuelve a abrir el fichero y realiza la lectura de los datos. package ejerciciosficherossegundotrimestre; import java.io.*; /** * Clase Ejercicio 4 * * Ejercicio que se nos pide trabajar sobre un fichero agenda, escribir en el y leer * su contenido * * @author Jaime Solas Lara */ public class Ejercicio4 { public static void main (String args[]){ /* Realiza un programa que guarde en un fichero (amigos.txt) los nombres guardados en un array de String, cada nombre en una línea, para ello se graba en el fichero el retorno de carro y la línea (“\r\n”) (“\r es el retorno de carro y \n el carácter de nueva línea). (utiliza las clases FileWriter,y FileReader, BufferedReader. Después, vuelve a abrir el fichero y realiza la lectura de los datos. */ InputStreamReader flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(flujo); String nombref; int opcion=0; do { try { System.out.println("¿Que quieres hacer?"); System.out.println("1.- Crear Fichero"); System.out.println("2.- Leer Fichero"); System.out.println("3.- Salir del programa"); System.out.println("Elegir Opcion:"); opcion = Integer.parseInt(teclado.readLine()); switch(opcion) { case 1: System.out.println("Introduzca nombre del fichero"); nombref = teclado.readLine(); creaFichero(nombref);//Llamamos al metodo para crear el fichero
break; case 2: System.out.println("Introduzca nombre del fichero"); nombref = teclado.readLine(); leerFichero(nombref);//Llamamos al metodo para leer el fichero break; case 3: System.out.println("Fin del programa"); break; default: System.out.println("Opcion elegida no valida"); break; } } catch(IOException e) { System.out.println("Error E/S"); } catch(NumberFormatException e2) { System.out.println("Opcion elegida no valida"); } catch(Exception e3) { System.out.println("Error programa"); } } while(opcion!=3); } /** * Este metodo es utilizado para crear un fichero y darle contenido * * @param nombref Nombre del fichero que queremos crear y añadir informacion */ public static void creaFichero(String nombref) { InputStreamReader flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(flujo); try { FileWriter fw = new FileWriter(nombref); BufferedWriter bw = new BufferedWriter(fw);
System.out.println("Introduzca numero de nombres a guardar"); int numnombres = Integer.parseInt(teclado.readLine()); String nombre [] = new String [numnombres]; for(int i = 0;i
System.out.println("Fichero no encontrado"); } catch(Exception e) { System.out.println("Error de programa"); } } } 5.- Realiza un programa que guarde en un fichero (amigos2.txt) el nombres y números de teléfonos y la edad (entero), dados los datos desde teclado. Se finaliza cuando no se introduce le nombre. Comprobar que se ha realizado correctamente realizando la lectura del fichero anterior. (utiliza la clase StringTokenizer) package ejerciciosficherossegundotrimestre; import java.io.*; import java.util.StringTokenizer; /** * Clase Ejercicio 5 * * Ejercicio que se nos pide trabajar sobre un fichero agenda2, escribir en el y leer * su contenido, similar al ejercicio 4 * * @author Jaime Solas Lara */ public class Ejercicio5 { public static void main(String args[]){ /* Realiza un programa que guarde en un fichero (amigos2.txt) el nombres y números de teléfonos y la edad (entero), dados los datos desde teclado. Se finaliza cuando no se introduce le nombre. Comprobar que se ha realizado correctamente realizando la lectura del fichero anterior. (utiliza la clase StringTokenizer) */ InputStreamReader flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(flujo); String nombref; try { System.out.println("¿Que quieres hacer?"); System.out.println("1.- Crear un fichero"); System.out.println("2.- Leer un fichero"); System.out.println("Opcion Elegida"); int opcion = Integer.parseInt(teclado.readLine()); switch(opcion) {
case 1: System.out.println("Introduzca nombre del fichero"); nombref = teclado.readLine(); crearFichero(nombref); break; case 2: System.out.println("Introduzca nombre del fichero"); nombref = teclado.readLine(); leerFichero(nombref); break; default: System.out.println("Opcion elegida no valida"); break; } } catch(NumberFormatException e) { System.out.println("Opcion elegida no valida"); } catch(IOException e1) { System.out.println("Error E/S"); } catch(Exception e2) { System.out.println("Error del programa"); } } /** * Este metodo es utilizado para crear un fichero y darle contenido * * @param nombref Nombre del fichero que queremos crear y añadir informacion */ public static void crearFichero(String nombref) { InputStreamReader flujo = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(flujo); int i = 0; try { FileOutputStream fos = new FileOutputStream(nombref); DataOutputStream dos = new DataOutputStream(fos);//Como vamos a trabajar con variables primitivas(INT) trabajaremos con este filtro String nombre; String telefono; int edad;
System.out.println("Introduzca nombre del amigo "+(i+1)); nombre = teclado.readLine(); dos.writeUTF(nombre); while(nombre.length()>0)//El bucle se seguirá ejecutando mientras el tamño de la variable nombre sea mayor a 0 { System.out.println("Introduzca telefono del amigo "+(i+1)); telefono = teclado.readLine(); dos.writeUTF(telefono);//A la vez que se introduce la informacion, esta se graba en el fichero System.out.println("Introduzca la edad del amigo "+(i+1)); edad = Integer.parseInt(teclado.readLine()); dos.writeInt(edad); i++; System.out.println("Introduzca nombre del amigo "+(i+1)); nombre = teclado.readLine(); dos.writeUTF(nombre); } if(dos!=null)//cerrado de filtro y flujo { dos.close(); fos.close(); } } catch(IOException e)//control de excepciones { System.out.println("Error E/S"); } catch(Exception e) { System.out.println("Error programa"); } } /** * Metodo que muestra por pantalla el contenido de un fichero dado * * @param nombref Nombre del fichero que queremos leer */ public static void leerFichero(String nombref) { try { File f = null;
FileInputStream fis = null; DataInputStream dis = null; try { f = new File(nombref);//Creamos el fichero if(f.exists())//Si existe el fichero se instanciaran cla clase file y data { fis = new FileInputStream(f); dis = new DataInputStream(fis); while(true)//Minetras el bucle valga true se ejecutará el interior del mismo, (Lectura del archivo) { String nombre = dis.readUTF(); String telefono = dis.readUTF(); int edad = dis.readInt(); StringTokenizer token = new StringTokenizer(nombre+" "+telefono+" "+edad);//Usaremos esta clase para poder "romper" o "separar", nuestra cadena, en este caso en tres pastes nombre,telefono y edad while(token.hasMoreTokens())//Se ejecutará mientras existan mas token que mostrar { System.out.println(token.nextToken());//Se van imprimiendo los tokens uno a uno } } } } catch(EOFException e)//Por aquí terminará la letura del fichero dado { System.out.println("Fin de archivo"); } catch(FileNotFoundException e) { System.out.println("Fichero no encontrado"); } catch(IOException e) { e.printStackTrace(); } catch(Throwable e) { System.out.println("Error del programa"+e); } finally//El finally siempre se va a cumplir, por lo tanto siempre haremos que se cierre el filtro y el flujo { if(dis !=null) {
dis.close(); fis.close(); } } } catch(Exception e) { System.out.println("Error"); } }
} 6. Realiza un programa cuenta.java que contenga un método cuentaPalabra() que cuente las palabras existentes en un archivo de datos pasado como parámetro package ejerciciosficherossegundotrimestre; import java.io.*; import java.util.*; /** * Clase Ejercicio 6 * * Esta clase contiene un metodo para contar palabras * * @author Jaime Solas Lara */ public class Ejercicio6 { public static void main(String args[]){ /* * Realiza un programa cuenta.java que contenga un método * cuentaPalabra() que cuente las palabras existentes en * un archivo de datos pasado como parámetro */ Scanner sc = new Scanner(System.in); System.out.println("Introduzca un fichero un texto para contar las palabras"); String nombre = sc.nextLine(); System.out.println(cuentaPalabras(nombre)); } /** * Metodo utilizado para contar las palabras de un fichero dado * * @param nombref Indicamos el nombre del fichero que queremos contar las palabras * @return int */ public static int cuentaPalabras(String nombref) { int npalabras = 0;//Inicializamos la variable a 0 para poder contar las palabras
try { Scanner sc = new Scanner(new File(nombref));//Le pasamos como argumento a la clase escaner una clase file, //el fichero que se genere será leido por la case escaner while(sc.hasNextLine())//Mientras existan lineas se ejecutará el bucle { sc.next();//Irá leyendo palabra por palabra npalabras++; //Cada vez que se ejecute el bucle el contador sumará 1, npalabras=1 == 1 palabra,npalabras=2 == 2 palabras, etc... } return npalabras;//Resultado se muestra en el contador } catch(FileNotFoundException e)//Con este catch controlamos la excepcion { npalabras = 0; return npalabras;//Si por lo contrario existe un error el valor que devolvera el metodo sera 0 } } } 7.-Se necesita crear una censura con un método aplicaCensura que modifique ciertas palabras de un fichero. El método toma un fichero de entrada y mediante un fichero de censura creará un fichero de salida con las modificaciones necesarias. Fichero de entrada En un lugar de la mancha de cuyo nombre no quiero acordarme… Vivía un hidalgo de adarga estrecha. Fichero de censura acordarme recordar hidalgo noble Fichero de salida En un lugar de la mancha de cuyo nombre no quiero recordar…. Vivía un noble adarga estrecha package ejerciciosficherossegundotrimestre; import java.io.*; /** * Clase Ejercicio 7 * * Contiene los metodos para aplicar censura sobre un fichero leido * * @author Jaime Solas Lara */ public class Ejercicio7 { public static void main(String args[]){ /* * Se necesita crear una censura con un método aplicaCensura que modifique ciertas palabras de un fichero.
* El método toma un fichero de entrada y mediante un fichero de censura creará un fichero de salida con las * modificaciones necesarias. * * - Fichero de entrada: * En un lugar de la mancha de cuyo nombre no quiero acordarme... * Vivía un hidalgo de adarga estrecha. * * - Fichero de censura: * acordarme recordar * hidalgo noble * * - Fichero de salida: * En un lugar de la mancha de cuyo nombre no quiero recordar... * Vivía un noble adarga estrecha */
String nombref = "C:\\Users\\jaime\\Desktop\\censurar.txt"; leerFichero(nombref); } /** * Metodo que muestra por pantalla el contenido de un fichero dado * * @param nombref Nombre del fichero que queremos leer */ public static void leerFichero(String nombref) { String texto = ""; int i = 0; try { FileReader fr = new FileReader(nombref); BufferedReader br = new BufferedReader(fr); while(texto!=null)//Mientras la cadena de texto sea distinto de null se seguirá ejecutando el while { texto = br.readLine(); if(texto!=null) //Nos servirá para poder eliminar los valores null que se puedan ir generando durante la lectura de la variable { System.out.println(censura(texto)); //nos mostrará el contenido de la varible texto que ha sido censurado utilizando el metodo censurar } } br.close(); } catch(FileNotFoundException e)
{ System.out.println("Fichero no encontrado"); } catch(Exception e) { System.out.println("Error de programa"); } } /** * Metodo que aplica una censura a un fichiro indicado * * @param fichcensurar Indicamos el fichero al que queremos aplicarle la censura * @return String */ public static String censura(String fichcensurar)//Introducimos la string que almacena la información a censurar { String censura = " ";//En esta cadena almacenaremos el contenido del archivo qu usaremos para censurara try { FileReader frc = new FileReader("C:\\Users\\jaime\\Desktop\\fichcensura.txt");//Creamos filtro BufferedReader brc = new BufferedReader(frc);//Creamos flujo censura = brc.readLine();//Almacenamos contenido del archio de censura int pos = censura.indexOf(" ");//Usaremos esta variable para obtener la cadena a intercambiar String censura1 = censura.substring(0,pos);//Obtenemos la cadena de la primera palabra para cambiar String censura2 = censura.substring(pos+1, censura.length());//Obtenemos la cadena de la segunda palabra para cambiar fichcensurar = fichcensurar.replaceAll("acordarme", censura1);//Sustituimos una palabra por otra fichcensurar = fichcensurar.replaceAll("hidalgo", censura2);//Sustituimos la otra palabra por otra } catch(FileNotFoundException e) { System.out.println("Fichero no encontrado"); } catch(Exception e) { System.out.println("Error de programa"); } return fichcensurar;//Devolvemos el contenido del fichero ya censurado
} } 8.- Modifica el ejercicio anterior para que el fichero de salida sea el fichero de entrada. package ejerciciosficherossegundotrimestre; import java.io.*; /** * Clase Ejercicio 8 * * Modificacion del ejercicio 8 * * @author Jaime Solas Lara */ public class Ejercicio8 { public static void main(String args[]){ /* *Modifica el ejercicio anterior para que el fichero de salida sea el fichero de entrada. */ String nombref = "C:\\Users\\jaime\\Desktop\\censurar2.txt"; leerFichero(nombref); } /** * Metodo que muestra por pantalla el contenido de un fichero dado * * @param nombref Nombre del fichero que queremos leer */ public static void leerFichero(String nombref) { String texto = ""; int i = 0; try { FileReader fr = new FileReader(nombref); BufferedReader br = new BufferedReader(fr); while(texto!=null)//Mientras la cadena de texto sea distinto de null se seguirá ejecutando el while { texto = br.readLine(); if(texto!=null) //Nos servirá para poder eliminar los valores null que se puedan ir generando durante la lectura de la variable { System.out.println(censura(texto)); //nos mostrará el contenido de la v arible texto que ha sido censurado utilizando el metodo censurar } }
br.close(); } catch(FileNotFoundException e) { System.out.println("Fichero no encontrado"); } catch(Exception e) { System.out.println("Error de programa"); } }
/** * Metodo que aplica una censura a un fichiro indicado * * @param fichcensurar Indicamos el fichero al que queremos aplicarle la censura * @return String */ public static String censura(String fichcensurar)//Introducimos la string que almacena la información a censurar { String censura = " ";//En esta cadena almacenaremos el contenido del archivo qu usaremos para censurara try { FileReader frc = new FileReader("C:\\Users\\jaime\\Desktop\\fichcensura2.txt");//Creamos filtro BufferedReader brc = new BufferedReader(frc);//Creamos flujo censura = brc.readLine();//Almacenamos contenido del archio de censura int pos = censura.indexOf(" ");//Usaremos esta variable para obtener la cadena a intercambiar String censura1 = censura.substring(0,pos);//Obtenemos la cadena de la primera palabra para cambiar String censura2 = censura.substring(pos+1, censura.length());//Obtenemos la cadena de la segunda palabra para cambiar fichcensurar = fichcensurar.replaceAll("recordar", censura1);//Sustituimos una palabra por otra fichcensurar = fichcensurar.replaceAll("noble", censura2);//Sustituimos la otra palabra por otra } catch(FileNotFoundException e) { System.out.println("Fichero no encontrado"); } catch(Exception e) { System.out.println("Error de programa");
} return fichcensurar;//Devolvemos el contenido del fichero ya censurado } } 9.- Tenemos un fichero con una serie de números los cuales queremos ordenar de manera ascendente. El objetivo es que los números queden ordenados en el mimo fichero. Para la resolución del problema crea una clase orden c on un método ordena que haga la ordenación de los datos del fichero. Los números están cada uno en una línea del fichero y el f ichero cuenta con al menos 5 números. La solución que se la ha dado al problema se ubica en el método ordenar y consta de tres fases: Lectura de los datos del fichero en un String → Ordenación del String →Escritura del String en el fichero. package ejerciciosficherossegundotrimestre.Ejercicio9; import java.io.*; /** * Clase Ordenar * * Esta clase es utilizada para ordenar numeros dentro de un fichero dado * * @author Jaime Solas Lara */ public class Ordenar { /** * Metodo que se utiliza para ordenar numeros dentro de un fichero dado * * @param nombref Indicamos el nombre del fichero que contiene los numeros a o rdenar */ public static void ordenar(String nombref) { //Leemos el fichero con los numeros a ordenar String numeros = ""; String resultado = ""; try { FileReader fr = new FileReader(nombref); BufferedReader br = new BufferedReader(fr); while(numeros!=null)//Mientras la cadena de texto sea distinto de null se seguirá ejecutando el while { numeros = br.readLine(); if(numeros!=null) //Nos servirá para poder eliminar los valores null que se puedan ir generando durante la lectura de la variable {
resultado = resultado + numeros; //Almacenaremos el contenido en una variable para despues ordenarlos } } br.close(); //Ordenamos los numeros del fichero int tamanio = resultado.length();//Obtendremos el tamanio del string donde se almacenan los numeros int listaNum[] = new int[tamanio];//Se creará un ar ray de int para almacenar los valores, tenemos que indicarle el tamanio para evitar los nulos for(int i = 0;ilistaNum[j]) { int aux; aux = listaNum[j]; listaNum[j] = listaNum[i]; listaNum[i] = aux; } } } //Escribimos los resultados en el fichero FileWriter fw = new FileWriter("C:\\Users\\jaime\\Desktop\\numeros2.txt"); BufferedWriter bw = new BufferedWriter(fw); for(int k = 0;k
catch(Exception e) { System.out.println("Error de programa"); } } }