java fundamentals - 05

10
Java Fundamentals 1 Fi ch e ros e n J a va  Objetivo:    C   a   p    í   t   u    l   o    5  Aplicar objetos para grabar y leer información del disco. Temas: 5.1 La clase File. 5.2 Streams de entrada. 5.3 Streams de salida. 5.4 La clase URL. CIBERTEC

Upload: xpgiraldo

Post on 02-Apr-2018

263 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 1/10

Java Fundamentals 1

Ficheros en Java 

Objetivo:

   C  a  p   í  t  u   l  o   5

 

• Aplicar objetos para grabar y leer información del disco.

Temas:

5.1 La clase File.

5.2 Streams de entrada.5.3 Streams de salida.

5.4 La clase URL.

CIBERTEC

Page 2: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 2/10

Java Fundamentals 2 

5.1 La clase File

Para realizar acciones sobre un fichero o archivo, necesitamos un poco de informaciónsobre ese fichero. La clase File proporciona muchas utilidades relacionadas conficheros y con la obtención de información básica sobre esos ficheros.

Creación de un objeto File

Para crear un objeto File nuevo, se puede utilizar cualquiera de los tres constructoressiguientes:

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 elacceso. Por ejemplo, si sólo se utiliza un fichero en la aplicación, el primer constructor es el mejor. Si en cambio, se utilizan muchos ficheros desde un mismo directorio, elsegundo o tercer constructor serán más cómodos. Y si el directorio o el fichero es unavariable, el segundo constructor será el más útil.

Comprobaciones y UtilidadesUna vez creado un objeto File, se puede utilizar uno de los siguientes métodos parareunir información sobre el fichero:

Nombres de ficheroString getName()String getPath()String getAbsolutePath()boolean renameTo( File nuevoNombre ) 

Comprobacionesboolean exists()boolean canWrite()boolean canRead()boolean isFile()boolean isDirectory()

Información general del ficherolong lastModified()long length()

Utilidades de directorioboolean mkdir()

CIBERTEC

Page 3: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 3/10

Java Fundamentals 3

Ejercicio N°. 13 

Mediante el siguiente ejercicio apreciaremos el uso de la clase File. Para eso, crear unproyecto y agregar a él un Jframe con el siguiente contenido:

En el actionPerformed del botón digitar el siguiente código:

Ejecutar:

CIBERTEC

Page 4: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 4/10

Java Fundamentals 4

5.2 Streams de entrada

Hay muchas clases dedicadas a la obtención de entrada desde un fichero. Este es elesquema de la jerarquía de clases de entrada por fichero:

Objetos FileInputStream

Los objetos FileInputStream típicamente representan ficheros de texto accedidos enorden 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 unobjeto File:

FileInputStream miFichero;miFichero = new FileInputStream( "D:/data/datos.txt" );

Lectura de un FileInputStream

Una vez abierto el FileInputStream, se puede leer de él. El método read() tienemuchas opciones:

int read();

Lee un byte y devuelve -1 al final del stream.

int read( byte b[] );

Llena todo el array, si es posible. Devuelve el número de bytes leídos o -1 si sealcanzó el final del stream.

Cierre de FileInputStream

CIBERTEC

Page 5: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 5/10

Java Fundamentals 5 

Cuando se termina con un fichero, existen dos opciones para cerrarlo: explícitamente,o implícitamente cuando se recicla el objeto (el garbage collector se encarga de ello).

Para cerrarlo explícitamente, se utiliza el método close():

miFichero.close();

5.3 Streams de salida

Un conjunto de clases para escribir datos en el disco duro. Las clases de salida estánordenadas jerárquicamente:

Objetos FileOutputStream

Los objetos FileOutputStream son útiles para la escritura de ficheros de texto. Comocon 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 paraabrir 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 métodowrite(). Como con el método read() de los streams de entrada, tenemos tresposibilidades:

 void write( int b );

Escribe un byte.

CIBERTEC

Page 6: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 6/10

Java Fundamentals 6 

 void write( byte b[] );

Escribe todo el array, si es posible.

Cierre de FileOutputStream

Cerrar un stream de salida es similar a cerrar streams de entrada. Se puede utilizar elmétodo explícito:

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 aplicación en ejecución, después de haber escrito en el JTextArea pulsaráel botón Grabar archivo, entonces mediante una ventana de dialogo(showSaveDialog), elegirá la carpeta y el nombre del archivo para grabar el contenidodel JTextArea.

 Asimismo, el botón Lee archivo, mediante una ventana de dialogo(showOpenDialog), permitirá seleccionar el archivo anteriormente grabado y

mostrado así en el JTextArea.

El código correspondiente se muestra en las siguientes líneas (considere que jButton1es el primer botón):

CIBERTEC

Page 7: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 7/10

Java Fundamentals 7 

CIBERTEC

Page 8: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 8/10

Java Fundamentals 8 

CIBERTEC

Page 9: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 9/10

Java Fundamentals 9

5.4 La clase URL

También, Java proporciona la posibilidad de acceder a URLs como una forma deacceder a objetos a través de Internet. Se utiliza implícitamente un objeto URL alacceder a sonidos, imágenes y todo documento que deseemos descargar.

URL archi = new URL(“http://msdn2.microsoft.com/en-us/default.aspx”);

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:

El código para el método actionPerformed del botón:

En ejecución:

CIBERTEC

Page 10: Java Fundamentals - 05

7/27/2019 Java Fundamentals - 05

http://slidepdf.com/reader/full/java-fundamentals-05 10/10

Java Fundamentals 10 

CIBERTEC