Académique Documents
Professionnel Documents
Culture Documents
1
1.- Realiza un programa donde utilices los métodos sobre directorios isDirectory, mkdir,
mkdirs, exist, delete, list y listRoots.
package ejerciciosficherossegundotrimestre;
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.
*/
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();
case 2:
System.out.println("Introduzca el nombre del directorio:");
nombref = teclado.readLine();
case 3:
System.out.println("Introduzca el nombre del directorio:");
nombref = teclado.readLine();
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();
case 6:
System.out.println("Introduzca el nombre del directorio:");
nombref = teclado.readLine();
for(int i = 0;i<lista.length;i++)
{
if(lista[i].isDirectory()==true)
{
System.out.println(lista[i]+"Es directorio");//Dependiendo del resultado que
nos arroje el if (true o false)
//se nos indicará si lo incidado es un directorio o un
fichero
}
else
{
System.out.println(lista[i]+"Es un fichero");
}
}
break;
case 7:
//Uso del metodo listroot
File f7 = new File("");
File [] lista2 = f7.listRoots();
for(int i = 0;i<lista2.length;i++)
{
System.out.println(lista2[i]+" "); //Se almacena el listado de las unidades del
sistema en un array, luego para poder
//mostrar el contenido usaremos un bucle for
}
break;
case 8:
System.out.println("Fin del programa");
break;
default:
System.out.println("Opcion elegida no valida");
break;
}
}
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
*/
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:
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
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";
}
}
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.
*/
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="";
for(int i = 0;i<lista.length;i++)
{
if(lista[i].isDirectory()==true)//Dependiendo del resultado que nos arroje el if (true o
false)
//se nos indicará si lo incidado es un directorio o un fichero
{
listado = listado+"\n[D]"+lista[i];//Vamos almacenando el contenido de un array en
una variable string, (Concatenandolo)
}
else
{
listado = listado+"\n[F]"+lista[i];
}
}
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.
*/
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)
{
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());
/**
* 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);
}
}
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)
*/
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);
i++;
}
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
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
*/
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
*/
/**
* 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);
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
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.
*/
/**
* 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);
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\\fichcensura2.txt");//Creamos filtro
BufferedReader brc = new BufferedReader(frc);//Creamos flujo
}
}
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 con 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 fichero
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 ordenar
*/
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);
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();
}
catch(FileNotFoundException e)
{
System.out.println("Fichero no encontrado");
}
catch(Exception e)
{
System.out.println("Error de programa");
}
}
}