Ejercicios de entrada/salida en Java

Entrada/salida byte a byte

  1. Modifique el programa de copia de manera que si recibe un único argumento escriba el fichero que corresponde a ese primer y único argumento en System.out. Gracias a la independencia del dispositivo que ofrece la abstración de stream, no habrá ningún cambio en el bucle de copia, ya que, como se verá más adelante, System.out pertenece a una clase derivada de OutputStream.
  2. Modifique el programa de copia de manera que si el primer argumento comienza por http: lo considere la dirección de un recurso web y use la clase URL, concretamente, el stream asociado a la misma, para acceder a dicho recurso.
  3. Desarrolle un programa, denominado extraer, que copie una porción de un fichero en otro. El programa recibirá cuatro argumentos: fichero origen, fichero destino, posición en el fichero origen del primer byte a copiar, número de bytes a copiar.
  4. Realice un programa, llamado pegar, que reciba como argumentos N ficheros de entrada y 1 de salida, de manera que el programa concatenará sucesivamente el contenido de los ficheros de entrada en el de salida.
  5. Programe una aplicación, de nombre romper, que reciba como argumentos el nombre de un fichero F y un número N, y que genere tantos ficheros de salida como sean necesarios, de manera que cada fichero de salida, excepto el último, tenga un tamaño de N bytes y nombres sucesivamente F_0, F_1, etc.
  6. Defina una clase derivada de InputStream tal que cada vez que se lea de la misma devuelva siempre el mismo valor, que se le habrá especificado en el constructor. Desarrolle un programa de prueba que reciba como argumentos un entero V con un valor entre 0 y 255, un tamaño T y el nombre de un fichero, de forma que el programa cree un fichero del nombre indicado con un tamaño T y tal que todos sus bytes tengan el valor V.
  7. Pruebe el programa de copia original usando un fichero de entrada muy grande. Compruebe el bajo rendimiento del mismo. Modifíquelo para usar las operaciones read y write que manejan vectores de bytes, usando un tamaño de 1024.

Usando filtros

  1. Añada filtros de buffering al programa de copia que realizaba la operación byte a byte. Compare su rendimiento con la versión original sin buffering y con la versión que usa vectores de bytes.
  2. Se pretende desarrollar una aplicación de cifrado basada en las siguientes clases: