En la jerarquía, cada nivel de sangría indica que la clase con sangría extiende a la clase encima de ella. Por ejemplo, 
la clase 

InputStream

 es una subclase de 

Object

. Haga clic en el nombre de una clase en la jerarquía para ver los 

detalles de esa clase.

Como puede ver en la jerarquía, Java ofrece muchas clases para realizar operaciones de entrada/salida. En este 

capítulo usaremos varias de estas clases para implementar programas de procesamiento de archivos, que crean y 
manipulan archivos de acceso secuencial. También incluiremos un ejemplo detallado acerca de la clase 

File

, que 

es útil para obtener información sobre archivos y directorios. En el capítulo 24, Redes, utilizaremos las clases de 
fl ujos en forma extensa, para implementar aplicaciones de red. En la sección 14.7 hablaremos brevemente sobre 
varias otras clases del paquete 

java.io

 que no usaremos en este capítulo.

Además de las clases en este paquete, las operaciones de entrada y salida basadas en caracteres se pueden llevar 

a cabo con las clases 

Scanner

 y 

Formatter

. La clase 

Scanner

se utiliza en forma extensa para recibir datos del 

teclado. Como veremos, esta clase también puede leer datos de un archivo. La clase 

Formatter

 permite mostrar 

datos con formato en la pantalla, o enviarlos a un archivo, en forma similar a

System.out.printf

. En el capítulo 

29, Salida con formato, se presentan los detalles acerca de la salida con formato mediante 

System.out.printf

Todas estas características se pueden utilizar también para dar formato a los archivos de texto.

14.4 La clase 

File

En esta sección presentamos la clase 

File

, que es especialmente útil para recuperar información acerca de un 

archivo o directorio de un disco. Los objetos de la clase 

File

 no abren archivos ni proporcionan herramientas para

procesarlos. No obstante, los objetos 

File

 se utilizan frecuentemente con objetos de otras clases de 

java.io

para especifi car los archivos o directorios que van a manipularse.

Creación de objetos 

File

La clase 

File

 proporciona cuatro constructores. El constructor:

public

 File( String nombre )

especifi ca el nombre de un archivo o directorio que se asociará con el objeto 

File

. El 

nombre

 puede contener 

información sobre la ruta

, así como el nombre de un archivo o directorio. La ruta de un archivo o directorio 

especifi ca su ubicación en el disco. La ruta incluye algunos o todos los directorios que conducen a ese archivo o 
directorio. Una 

ruta absoluta

 contiene todos los directorios, empezando con el 

directorio raíz

, que conducen a 

un archivo o directorio específi co. Cada archivo o directorio en un disco duro específi co tiene el mismo directo-
rio raíz en su ruta. Una 

ruta relativa

 normalmente empieza desde el directorio en el que la aplicación empezó a 

ejecutarse y es, por lo tanto, una ruta “relativa” al directorio actual.

El constructor:

public

 File( String rutaAlNombre, String nombre )

usa el argumento 

rutaAlNombre

 (una ruta absoluta o relativa) para localizar el archivo o directorio especifi cado 

por nombre.

El constructor:

public

File( File directorio, String nombre )

usa un objeto 

File

 existente llamado 

directorio

 (una ruta absoluta o relativa) para localizar el archivo o direc-

torio especifi cado por 

nombre

. En la fi gura 14.3 se enlistan algunos métodos comunes de 

File

. La lista completa 

puede verse en 

java.sun.com/javase/6/docs/api/java/io/File.html

.

El constructor:

public

 File( URI uri )

usa el objeto 

URI

 dado para localizar el archivo. Un 

Identifi cador uniforme de recursos (URI) 

es una forma 

más general de un 

Localizador uniforme de recursos (URL)

, el cual se utiliza comúnmente para localizar sitios 

Web. Por ejemplo, 

http://www.deitel.com/

 es el URL para el sitio Web de Deitel & Associates. Los URIs para 

localizar archivos varían entre los distintos sistemas operativos. En plataformas Windows, el URI:

file:/C:/datos.txt

14.4 La 

clase 

File

613

14_MAQ_CAP_14_DEITEL.indd613

4/19/081:28:11AM