Java Fundamentals - 05
Java Fundamentals - 05
Ficheros en Java
Objetivo:
Temas: 5.1 La clase File. 5.2 Streams de entrada. 5.3 Streams de salida. 5.4 La clase URL.
CIBERTEC
Captulo 5
Java Fundamentals
5.1
La clase File
Para realizar acciones sobre un fichero o archivo, necesitamos un poco de informacin sobre ese fichero. La clase File proporciona muchas utilidades relacionadas con ficheros y con la obtencin de informacin bsica sobre esos ficheros. Creacin de un objeto File Para crear un objeto File nuevo, se puede utilizar cualquiera de los tres constructores siguientes:
File miFichero = new File( "D:/data/datos.txt" ); File miFichero = new File( "D:/data/, datos.txt" ); File miCarpeta = new File( " D:/data/" ); File miFichero = new File(miCarpeta, "datos.txt" );
El constructor utilizado depende a menudo de otros objetos File necesarios para el acceso. Por ejemplo, si slo se utiliza un fichero en la aplicacin, el primer constructor es el mejor. Si en cambio, se utilizan muchos ficheros desde un mismo directorio, el segundo o tercer constructor sern ms cmodos. Y si el directorio o el fichero es una variable, el segundo constructor ser el ms til.
Comprobaciones y Utilidades Una vez creado un objeto File, se puede utilizar uno de los siguientes mtodos para reunir informacin sobre el fichero: Nombres de fichero
String getName() String getPath() String getAbsolutePath() boolean renameTo( File nuevoNombre )
Comprobaciones
boolean exists() boolean canWrite() boolean canRead() boolean isFile() boolean isDirectory()
Informacin general del fichero
boolean mkdir()
CIBERTEC
Java Fundamentals
Ejercicio N. 13
Mediante el siguiente ejercicio apreciaremos el uso de la clase File. Para eso, crear un proyecto y agregar a l un Jframe con el siguiente contenido:
Ejecutar:
CIBERTEC
Java Fundamentals
5.2
Streams de entrada
Hay muchas clases dedicadas a la obtencin de entrada desde un fichero. Este es el esquema de la jerarqua de clases de entrada por fichero:
Objetos FileInputStream Los objetos FileInputStream tpicamente representan ficheros de texto accedidos en orden secuencial, byte a byte. Con FileInputStream, se puede elegir acceder a un byte, varios bytes o al fichero completo.
Apertura de un FileInputStream Para abrir un FileInputStream sobre un fichero, se le da al constructor un String o un objeto File:
int read();
Lee un byte y devuelve -1 al final del stream.
Cierre de FileInputStream
CIBERTEC
Java Fundamentals
Cuando se termina con un fichero, existen dos opciones para cerrarlo: explcitamente, o implcitamente cuando se recicla el objeto (el garbage collector se encarga de ello). Para cerrarlo explcitamente, se utiliza el mtodo close():
miFichero.close();
5.3
Streams de salida
Un conjunto de clases para escribir datos en el disco duro. Las clases de salida estn ordenadas jerrquicamente:
Objetos FileOutputStream Los objetos FileOutputStream son tiles para la escritura de ficheros de texto. Como con los ficheros de entrada, primero se necesita abrir el fichero para luego escribir en l.
Apertura de un FileOutputStream Para abrir un objeto FileOutputStream, se tienen las mismas posibilidades que para abrir un fichero stream de entrada. Se le da al constructor un String o un objeto File.
FileOutputStream miFichero = new FileOutputStream( "D:/data/datos.txt" ); File file = new File( "D:/data/datos.txt" ); FileOutputStream miFichero = new FileOutputStream(file);
Escritura en un FileOutputStream Una vez abierto el fichero, se pueden escribir bytes de datos utilizando el mtodo write(). Como con el mtodo read() de los streams de entrada, tenemos tres posibilidades:
CIBERTEC
Cerrar un stream de salida es similar a cerrar streams de entrada. Se puede utilizar el mtodo explcito:
miFichero.close();
O, se puede dejar que el sistema cierre el fichero cuando se recicle miFichero.
Ejercicio N. 14
Mediante el siguiente ejercicio apreciaremos como grabar y leer archivos de tipo texto. Para eso, crear un proyecto y agregar a l un Jframe con el siguiente contenido:
Estando la aplicacin en ejecucin, despus de haber escrito en el JTextArea pulsar el botn Grabar archivo, entonces mediante una ventana de dialogo (showSaveDialog), elegir la carpeta y el nombre del archivo para grabar el contenido del JTextArea. Asimismo, el botn Lee archivo, mediante una ventana de dialogo (showOpenDialog), permitir seleccionar el archivo anteriormente grabado y mostrado as en el JTextArea. El cdigo correspondiente se muestra en las siguientes lneas (considere que jButton1 es el primer botn):
CIBERTEC
Java Fundamentals
CIBERTEC
Java Fundamentals
CIBERTEC
Java Fundamentals
5.4
La clase URL
Tambin, Java proporciona la posibilidad de acceder a URLs como una forma de acceder a objetos a travs de Internet. Se utiliza implcitamente un objeto URL al acceder a sonidos, imgenes y todo documento que deseemos descargar.
Ejercicio N. 15
Mediante el siguiente ejercicio apreciaremos como descargar archivos de Internet. Para eso, crear un proyecto y agregar a l un JFrame con el siguiente contenido:
En ejecucin:
CIBERTEC
Java Fundamentals
10
CIBERTEC