Ejercicios¶
Ejercicio 1
Realiza un programa que dado un fichero que se le solicite al usuario, muestre su nombre, si es un ejecutable, si está oculto, la ruta relativa, la ruta absoluta y el tamaño.
Ejercicio 2
Realiza un programa que cree un directorio en el directorio actual, luego cree tres ficheros en dicho directorio donde uno se borre y otro se renombre. Crearle también un subdirectorio con un fichero dentro. Después mostrar la ruta absoluta de ambos directorios y sus contenidos.
Ejercicio 3
Realiza un programa que muestre el nombre y tipo (fichero o directorio) de los ficheros y subdirectorios contenidos en un directorio solicitado al usuario. Mostrar también el contenido de todos los subdirectorios y si éstos contienen subdirectorios también...y así sucesivamente hasta mostrar todo el contenido de dicho directorio.
Ejercicio 4
Un filtro sirve para que el método list devuelva solo aquellos archivos o carpetas que cumplan una condición (que tengan una extensión determinada, contengan en su nombre una cadena concreta, empiecen por un carácter, etc). Un filtro es un objeto de una clase que implementa el interface FilenameFilter. Realiza un programa que muestre los archivos de un directorio que posean una extensión concreta. Tanto la extensión como el directorio se solicita al usuario.
Ejercicio 5
Realiza un programa que dadas dos rutas, origen y destino, copie el archivo origen(fichero de texto) en el destino de la siguiente manera:
- Si el destino es un directorio, se creará un archivo con el mismo nombre donde se copiará el archivo origen línea a línea(una línea se considera hasta que se encuentre un salto de línea). Utilizar Stream de la clase BufferedReader.
- Si el destino es un archivo, habrá varias opciones según un booleano:
- Si el booleano es verdadero y el destino es un archivo existente, se reemplazará su contenido por el del archivo origen copiando carácter a carácter.
- Si el booleano es verdadero y el destino es un archivo inexistente, se lanzará una excepción.
- Si el booleano es falso y el destino es un archivo existente, se reemplazará su contenido por el del archivo origen copiandolo usando un buffer(array) sin desplazamiento de 20 caracteres. En el caso de la última escritura, si no se llena el buffer, utilizar el desplazamiento para no dejar basura.
- Si el booleano es falso y el destino es un archivo inexistente, no se hará nada con el archivo y se le dará un mensaje al usuario de que la copia no se puede realizar.
Ejercicio 6
Realiza un programa que dado un fichero de texto, se copie en tres ficheros diferentes de tal manera que copie en el primer fichero los primeros 5 caracteres, en el segundo, los 5 siguientes y en el tercero los 5 siguientes, y así sucesivamente hasta copiar todo el fichero. Utilizar lectura sin desplazamiento y escrituras con desplazamiento de un buffer de 15 caracteres. Después, hacer justamente lo contrario. Dados los 3 ficheros, construir uno como el fichero original. Utilizar ahora lecturas con desplazamiento y escritura sin desplazamiento de un buffer de 15 caracteres. Comprobar por código que ambos son iguales. En el caso de la última lectura/escritura, si no se llena el buffer, utilizar el desplazamiento para no dejar basura.
Ejercicio 7
Diseñar un programa para encriptar y desencriptar los datos de un fichero de texto. Se introduce una cadena por teclado que será la clave a aplicar para la encriptación y desencriptación. A cada carácter del fichero de texto original se le sumará una letra de la clave (el código Unicode), cuando se hayan acabado las letras de la palabra clave y aún no se hayan acabado los caracteres del fichero, se volverá al principio de la cadena para seguir aplicando la encriptación. Los datos encriptados se escribirán en un fichero destino, que será usado como origen para desencriptar. Para desencriptar se aplicará la fórmula a la inversa. Por ejemplo, si el fichero origen contiene “abcdef” y la palabra clave es “rosa”, en el fichero destino se escribirán los siguientes caracteres: ”ÓÑÖÅ×Õ”. Es decir, Ó es el resultado de sumar a y r, Ñ es el resultado de sumar b y o, y así sucesivamente.
Ejercicio 8
Queremos hacer una agenda telefónica con los siguientes datos:
- Nombre de contacto
- Teléfono
- Dirección
- Código postal
- Fecha de Nacimiento
- Si le debo dinero o no
- Cantidad de dinero que le debo
Realiza un programa que almacene los datos en un fichero binario. A continuación, lee el fichero y muestra el contenido contenido por consola. Haz dos versiones, una sin serialización de objetos y otras con serialización.
Almacena unos cuantos contactos, luego cierra el programa y vuelve a ejecutarlo añadiendo unos cuantos contactos más.
Ejercicio 9
Haz un programa que lea los contactos del fichero del ejercicio 8 (la versión con serialización de objetos) y los guarde en un fichero aleatorio. En el fichero aleatorio tienes que añadir un identificador a cada contacto antes de los datos. El identificador empieza en 1. Añádele también en el fichero a cada contacto un indicador para comprobar si el usuario ha sido eliminado. A continuación, hazle el siguiente menú al fichero aleatorio:
- Consultar todos los contactos.
- Consultar un contacto (pedirle al usuario el identificador)
- Añadir un contacto
- Por el final
- En la primera posición libre
- Eliminar un contacto de forma de forma lógica o suave.
- Modificar si le debo dinero y la cantidad (pedirle al usuario el identificador)
- Compactación del fichero
Realiza dos versiones del ejercicio, usando writeChars
y otra usando writeUTF
.
Ejercicio 10
Haz un programa que lea los contactos del fichero binario de la agenda telefónica con serialización de objetos del ejercicio 8 y los escriba en un fichero XML usando la librería XStream.
Ejercicio 11
Dado el XML del ejercicio anterior, utilizando XStream, pásalo a un fichero binario sin serialización de objetos. Compara que sea igual al fichero binario sin serialización de objetos obtenido en el ejercicio 8. Haz la comparación en binario.
Ejercicio 12
Dado el fichero XML, añádele los siguientes atributos utilizando un editor de textos:
- Prefijo del país en el teléfono.
- Localidad en la dirección
- Tipo de moneda en el dinero
Procésalo con SAX y guarda los datos en un fichero de texto. Guarda cada contacto en una línea. Los datos deben estar alineados por columnas.
Ejercicio 13
Crea una plantilla XSL para dar una presentación al fichero XML de la agenda telefónica. Realiza un programa para transformarlo en HTML.
Ejercicio 14
A partir del fichero XML de la agenda telefónica, obtener un fichero JSON utilizando la librería GSON.
Ejercicio 15
Dado el fichero JSON del ejercicio anterior, obtener un fichero de texto con el siguiente formato:
Ejercicio 16
Dado el fichero JSON anterior, mostrar todos los datos de los contactos cuyo nombre nos indique el usuario. La búsqueda se hará directamente en el fichero JSON. NO utilizar GSON
Ejercicio 17
Realiza una función que te permita buscar en un JSON por un número indeterminado de campos.