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