SlideShare una empresa de Scribd logo
1 de 12
Sección 14.1 Introducción
• Los datos que se almacenan en variables y arreglos son temporales; se
pierden cuando una variable local queda fuera
de alcance, o cuando el programa termina. Las computadoras utilizan archivos
para la retención a largo plazo de
grandes cantidades de datos, incluso después de que los programas que
crearon los datos terminan de ejecutarse.
• Los datos persistentes que se mantienen en archivos existen más allá de la
duración de la ejecución del programa.
• Las computadoras almacenan los archivos en dispositivos de almacenamiento
secundario, como los discos duros.
Sección 14.2 Jerarquía de datos
• El elemento de datos más pequeño en una computadora puede asumir el
valor 0 o 1, y se le conoce como bit. En
última instancia, una computadora procesa todos los elementos de datos como
combinaciones de ceros y unos.
• El conjunto de caracteres de la computadora es el conjunto de todos los
caracteres que se utilizan para escribir programas
y representar datos.
• Los caracteres en Java son Unicode y están compuestos de dos bytes, cada
uno de los cuales se compone de ocho
bits.
• Así como los caracteres están compuestos de bits, los campos se componen
de caracteres o bytes. Un campo es un
grupo de caracteres o bytes que transmite un signifi cado.
• Los elementos de datos procesados por las computadoras forman una
jerarquía de datos, la cual se vuelve más grande
y compleja en estructura, a medida que progresamos de bits a caracteres,
luego a campos, y así en lo sucesivo.
• Por lo general, varios campos componen un registro (que se implementa
como class en Java).
• Un registro es un grupo de campos relacionados.
• Un archivo es un grupo de registros relacionados.
• Para facilitar la obtención de registros específi cos de un archivo, se elije por
lo menos un campo en cada registro
como clave. Una clave de registro identifi ca que un registro pertenece a una
persona o entidad específi ca, y es único
para cada registro.
• Existen muchas formas de organizar los registros en un archivo. La más
común se llama archivo secuencial, en el cual
los registros se almacenan en orden, en base al campo clave de registro.
• Por lo general, a un grupo de archivos relacionados se le denomina base de
datos. Una colección de programas
diseñados para crear y administrar bases de datos se conoce como sistema de
administración de bases de datos
(DBMS).
Sección 14.3 Archivos y flujos
• Java ve a cada archivo como un flujo secuencial de bytes.
• Cada sistema operativo cuenta con un mecanismo para determinar el fi n de
un archivo, como un marcador de fi n
de archivo o la cuenta de los bytes totales en el archivo, que se registra en una
estructura de datos administrativa,
manejada por el sistema.
• Los flujos basados en bytes representan datos en formato binario.
• Los flujos basados en caracteres representan datos como secuencias de
caracteres.
• Los archivos que se crean usando flujos basados en bytes son archivos
binarios. Los archivos que se crean usando
flujos basados en caracteres son archivos de texto. Los archivos de texto se
pueden leer mediante editores de texto,
mientras que los archivos binarios se leen mediante un programa que convierte
esos datos en un formato legible para
los humanos.
• Java también puede asociar los flujos con distintos dispositivos. Tres objetos fl
ujo se asocian con dispositivos cuando
un programa de Java empieza a ejecutarse: System.in, System.out y
System.err.
• El paquete java.io incluye definiciones para las clases de fl ujos, como
FileInputStream (para la entrada basada
en bytes de un archivo), FileOutputStream (para la salida basada en bytes
hacia un archivo), FileReader (para la entrada
basada en caracteres de un archivo) y FileWriter (para la salida basada en
caracteres hacia un archivo). Los
archivos se abren creando objetos de estas clases de flujos.
Sección 14.4 La clase File
• La clase File se utiliza para obtener información acerca de los archivos y
directorios.
• Las operaciones de entrada y salida basadas en caracteres se pueden llevar
a cabo con las clases Scanner y Formatter.
• La clase Formatter permite mostrar datos con formato en la pantalla, o
enviarlos a un archivo, de una manera
similar a System.out.printf.
• La ruta de un archivo o directorio especifi ca su ubicación en el disco.
• Una ruta absoluta contiene todos los directorios, empezando con el directorio
raíz, que conducen hacia un archivo
o directorio específi co. Cada archivo o directorio en una unidad de disco tiene
el mismo directorio raíz en su ruta.
• Por lo general, una ruta relativa empieza desde el directorio en el que se
empezó a ejecutar la aplicación.
• Un carácter separador se utiliza para separar directorios y archivos en la ruta.
Sección 14.5 Archivos de texto de acceso secuencial
• Java no impone una estructura en un archivo; las nociones como los registros
no existen como parte del lenguaje de
Java. El programador debe estructurar los archivos para satisfacer los
requerimientos de una aplicación.
• Para obtener datos de un archivo en forma secuencial, los programas
comúnmente empiezan a leer desde el principio
del archivo y leen todos los datos en forma consecutiva, hasta encontrar la
información deseada.
• Los datos en muchos archivos secuenciales no se pueden modifi car sin el
riesgo de destruir otros datos en el archivo.
Por lo tanto, los registros en un archivo de acceso secuencial normalmente no
se actualizan directamente en su ubicación.
En vez de ello, se vuelve a escribir el archivo completo.
Sección 14.6 Serialización de objetos
• Java cuenta con un mecanismo llamado serialización de objetos, el cual
permite escribir o leer objetos completos
mediante un fl ujo.
• Un objeto serializado es un objeto que se representa como una secuencia de
bytes, e incluye los datos del
objeto, así como información acerca del tipo del objeto y los tipos de datos
almacenados en el mismo.
• Una vez que se escribe un objeto serializado en un archivo, se puede leer del
archivo y deserializarse; es decir,
se puede utilizar la información de tipo y los bytes que representan al objeto
para recrearlo en la memoria.
• Las clases ObjectInputStream y ObjectOutputStream, que implementan en
forma respectiva a las interfaces
ObjectInput y ObjectOutput, permiten leer o escribir objetos completos de/a un
fl ujo (posiblemente un
archivo).
• Sólo las clases que implementan a la interfaz Serializable pueden serializarse
y deserializarse con objetos
ObjectOutputStream y ObjectInputStream.
Sección 14.7 Clases adicionales de java.io
• La interfaz ObjectOutput contiene el método writeObject, el cual recibe un
objeto Object que implementa a la
interfaz Serializable como argumento y escribe su información en un objeto
OutputStream.
• La interfaz ObjectInput contiene el método readObject, que lee y devuelve una
referencia a un objeto Object
de un objeto InputStream. Una vez que se ha leído un objeto, su referencia
puede convertirse al tipo actual del
objeto.
• El uso de búfer es una técnica para mejorar el rendimiento de E/S. Con un
objeto BufferedOutputStream, cada
instrucción de salida no necesariamente produce una transferencia física real
de datos al dispositivo de salida. En vez
de ello, cada operación de salida se dirige hacia una región en memoria
llamada búfer, la cual es lo bastante grande
como para contener los datos de muchas operaciones de salida. La
transferencia actual al dispositivo de salida se
realiza entonces en una sola operación de salida física extensa cada vez que
se llena el búfer.
• Con un objeto BufferedInputStream, muchos trozos “lógicos” de datos de un
archivo se leen como una sola operación
de entrada física extensa y se colocan en un búfer de memoria. A medida que
un programa solicita cada nuevo
trozo de datos, se obtiene del búfer. Cuando el búfer está vacío, se lleva a cabo
la siguiente operación de entrada física
real desde el dispositivo de entrada, para leer el nuevo grupo de trozos
“lógicos” de datos.
Resumen 645
646 Capítulo 14 Archivos y fl ujos
Sección 14.8 Abrir archivos con JFileChooser
• La clase JFileChooser se utiliza para mostrar un cuadro de diálogo, que
permite a los usuarios de un programa
seleccionar archivos con facilidad, mediante una GUI.
aplicación de acceso directo
apuntador de posición de archivo
archivo
archivo binario
archivo de acceso secuencial
archivo de procesamiento por lotes
archivo de sólo lectura
archivo de texto
archivos de acceso directo
arreglo de bytes envuelto
base de datos
bit (dígito binario)
búfer
búfer de memoria
byte, tipo de datos
campo
CANCEL_OPTION, constante de la clase JFileChooser
canRead, método de la clase File
canWrite, método de la clase File
capacidad
-classpath, argumento de línea de comandos para java
-classpath, argumento de línea de comandos para
javac
clave de registro
conjunto de caracteres
conjunto de caracteres ASCII (Código estándar estadounidense
para el intercambio de información)
DataInput, interfaz
DataInputStream, clase
DataOutput, interfaz
DataOutputStream, clase
datos persistentes
dígito decimal
DIRECTORIES_ONLY, constante de la clase JFileChooser
directorio
directorio padre
directorio raíz
disco
disco óptico
dispositivos de almacenamiento secundario
EndOfFileException, excepción
envoltura de objetos fl ujo
exists, método de la clase File
exit, método de la clase System
File, clase
FileInputStream, clase
FileOutputStream, clase
FileReader, clase
FILES_AND_DIRECTORIES, constante de la clase JFile-
Chooser
FILES_ONLY, constante de la clase JFileChooser
FileWriter, clase
fl ujo basado en bytes
fl ujo basado en caracteres
fl ujo de bytes
Formatter, clase
getAbsolutePath, método de la clase File
getName, método de la clase File
getParent, método de la clase File
getPath, método de la clase File
getSelectedFile, método de la clase JFileChooser
InputStream, clase
interfaz de marcado
IOException, excepción
isAbsolute, método de la clase File
isDirectory, método de la clase File
isFile, método de la clase File
java.io, paquete
jerarquía de datos
JFileChooser, clase
JFileChooser, cuadro de diálogo
lastModified, método de la clase File
length, método de la clase File
list, método de la clase File
marcador de fi n de archivo
nombre de directorio
NoSuchElementException, excepción
ObjectInputStream, clase
ObjectOutputStream, clase
objeto deserializado
objeto fl ujo
objeto fl ujo de error estándar
objeto serializado
operación física de entrada
operación física de salida
operaciones lógicas de entrada
operaciones lógicas de salida
OutputStream, clase
pathSeparator, campo static de la clase File
PrintStream, clase
PrintWriter, clase
procesamiento de archivos
procesamiento de fl ujos
Reader, clase
readLine, método de la clase BufferedReader
readObject, método de la clase ObjectInputStream
readObject, método de la interfaz ObjectInput
registro
registro de longitud fi ja
ruta absoluta
Terminología
ruta relativa
secuencia de comandos de shell
Serializable, interfaz
serialización de objetos
setErr, método de la clase System
setIn, método de la clase System
setOut, método de la clase System
setSelectionMode de la clase JFileChooser
showOpenDialog de la clase JFileChooser
sistema de administración de bases de datos (DBMS)
System.err (fl ujo de error estándar)
transient, palabra clave
truncada
Unicode, conjunto de caracteres
URI (Identifi cador uniforme de recursos)
writeBoolean, método de la interfaz DataOutput
writeByte, método de la interfaz DataOutput
writeBytes, método de la interfaz DataOutput
writeChar, método de la interfaz DataOutput
writeChars, método de la interfaz DataOutput
writeDouble, método de la interfaz DataOutput
writeFloat, método de la interfaz DataOutput
writeInt, método de la interfaz DataOutput
writeLong, método de la interfaz DataOutput
writeObject, método de la clase ObjectOutputStream
writeObject, método de la interfaz ObjectOutput
Writer, clase
writeShort, método de la interfaz DataOutput
writeUTF, método de la interfaz DataOutputSección 14.1 Introducción
• Los datos que se almacenan en variables y arreglos son temporales; se
pierden cuando una variable local queda fuera
de alcance, o cuando el programa termina. Las computadoras utilizan archivos
para la retención a largo plazo de
grandes cantidades de datos, incluso después de que los programas que
crearon los datos terminan de ejecutarse.
• Los datos persistentes que se mantienen en archivos existen más allá de la
duración de la ejecución del programa.
• Las computadoras almacenan los archivos en dispositivos de almacenamiento
secundario, como los discos duros.
Sección 14.2 Jerarquía de datos
• El elemento de datos más pequeño en una computadora puede asumir el
valor 0 o 1, y se le conoce como bit. En
última instancia, una computadora procesa todos los elementos de datos como
combinaciones de ceros y unos.
• El conjunto de caracteres de la computadora es el conjunto de todos los
caracteres que se utilizan para escribir programas
y representar datos.
• Los caracteres en Java son Unicode y están compuestos de dos bytes, cada
uno de los cuales se compone de ocho
bits.
• Así como los caracteres están compuestos de bits, los campos se componen
de caracteres o bytes. Un campo es un
grupo de caracteres o bytes que transmite un signifi cado.
• Los elementos de datos procesados por las computadoras forman una
jerarquía de datos, la cual se vuelve más grande
y compleja en estructura, a medida que progresamos de bits a caracteres,
luego a campos, y así en lo sucesivo.
• Por lo general, varios campos componen un registro (que se implementa
como class en Java).
• Un registro es un grupo de campos relacionados.
• Un archivo es un grupo de registros relacionados.
• Para facilitar la obtención de registros específi cos de un archivo, se elije por
lo menos un campo en cada registro
como clave. Una clave de registro identifi ca que un registro pertenece a una
persona o entidad específi ca, y es único
para cada registro.
• Existen muchas formas de organizar los registros en un archivo. La más
común se llama archivo secuencial, en el cual
los registros se almacenan en orden, en base al campo clave de registro.
• Por lo general, a un grupo de archivos relacionados se le denomina base de
datos. Una colección de programas
diseñados para crear y administrar bases de datos se conoce como sistema de
administración de bases de datos
(DBMS).
Sección 14.3 Archivos y fl ujos
• Java ve a cada archivo como un fl ujo secuencial de bytes.
• Cada sistema operativo cuenta con un mecanismo para determinar el fi n de
un archivo, como un marcador de fi n
de archivo o la cuenta de los bytes totales en el archivo, que se registra en una
estructura de datos administrativa,
manejada por el sistema.
• Los fl ujos basados en bytes representan datos en formato binario.
• Los fl ujos basados en caracteres representan datos como secuencias de
caracteres.
• Los archivos que se crean usando fl ujos basados en bytes son archivos
binarios. Los archivos que se crean usando
fl ujos basados en caracteres son archivos de texto. Los archivos de texto se
pueden leer mediante editores de texto,
mientras que los archivos binarios se leen mediante un programa que convierte
esos datos en un formato legible para
los humanos.
• Java también puede asociar los fl ujos con distintos dispositivos. Tres objetos
fl ujo se asocian con dispositivos cuando
un programa de Java empieza a ejecutarse: System.in, System.out y
System.err.
• El paquete java.io incluye defi niciones para las clases de fl ujos, como
FileInputStream (para la entrada basada
en bytes de un archivo), FileOutputStream (para la salida basada en bytes
hacia un archivo), FileReader (para la entrada
basada en caracteres de un archivo) y FileWriter (para la salida basada en
caracteres hacia un archivo). Los
archivos se abren creando objetos de estas clases de fl ujos.
Sección 14.4 La clase File
• La clase File se utiliza para obtener información acerca de los archivos y
directorios.
• Las operaciones de entrada y salida basadas en caracteres se pueden llevar
a cabo con las clases Scanner y Formatter.
• La clase Formatter permite mostrar datos con formato en la pantalla, o
enviarlos a un archivo, de una manera
similar a System.out.printf.
• La ruta de un archivo o directorio especifi ca su ubicación en el disco.
• Una ruta absoluta contiene todos los directorios, empezando con el directorio
raíz, que conducen hacia un archivo
o directorio específi co. Cada archivo o directorio en una unidad de disco tiene
el mismo directorio raíz en su ruta.
• Por lo general, una ruta relativa empieza desde el directorio en el que se
empezó a ejecutar la aplicación.
• Un carácter separador se utiliza para separar directorios y archivos en la ruta.
Sección 14.5 Archivos de texto de acceso secuencial
• Java no impone una estructura en un archivo; las nociones como los registros
no existen como parte del lenguaje de
Java. El programador debe estructurar los archivos para satisfacer los
requerimientos de una aplicación.
• Para obtener datos de un archivo en forma secuencial, los programas
comúnmente empiezan a leer desde el principio
del archivo y leen todos los datos en forma consecutiva, hasta encontrar la
información deseada.
• Los datos en muchos archivos secuenciales no se pueden modifi car sin el
riesgo de destruir otros datos en el archivo.
Por lo tanto, los registros en un archivo de acceso secuencial normalmente no
se actualizan directamente en su ubicación.
En vez de ello, se vuelve a escribir el archivo completo.
Sección 14.6 Serialización de objetos
• Java cuenta con un mecanismo llamado serialización de objetos, el cual
permite escribir o leer objetos completos
mediante un fl ujo.
• Un objeto serializado es un objeto que se representa como una secuencia de
bytes, e incluye los datos del
objeto, así como información acerca del tipo del objeto y los tipos de datos
almacenados en el mismo.
• Una vez que se escribe un objeto serializado en un archivo, se puede leer del
archivo y deserializarse; es decir,
se puede utilizar la información de tipo y los bytes que representan al objeto
para recrearlo en la memoria.
• Las clases ObjectInputStream y ObjectOutputStream, que implementan en
forma respectiva a las interfaces
ObjectInput y ObjectOutput, permiten leer o escribir objetos completos de/a un
fl ujo (posiblemente un
archivo).
• Sólo las clases que implementan a la interfaz Serializable pueden serializarse
y deserializarse con objetos
ObjectOutputStream y ObjectInputStream.
Sección 14.7 Clases adicionales de java.io
• La interfaz ObjectOutput contiene el método writeObject, el cual recibe un
objeto Object que implementa a la
interfaz Serializable como argumento y escribe su información en un objeto
OutputStream.
• La interfaz ObjectInput contiene el método readObject, que lee y devuelve una
referencia a un objeto Object
de un objeto InputStream. Una vez que se ha leído un objeto, su referencia
puede convertirse al tipo actual del
objeto.
• El uso de búfer es una técnica para mejorar el rendimiento de E/S. Con un
objeto BufferedOutputStream, cada
instrucción de salida no necesariamente produce una transferencia física real
de datos al dispositivo de salida. En vez
de ello, cada operación de salida se dirige hacia una región en memoria
llamada búfer, la cual es lo bastante grande
como para contener los datos de muchas operaciones de salida. La
transferencia actual al dispositivo de salida se
realiza entonces en una sola operación de salida física extensa cada vez que
se llena el búfer.
• Con un objeto BufferedInputStream, muchos trozos “lógicos” de datos de un
archivo se leen como una sola operación
de entrada física extensa y se colocan en un búfer de memoria. A medida que
un programa solicita cada nuevo
trozo de datos, se obtiene del búfer. Cuando el búfer está vacío, se lleva a cabo
la siguiente operación de entrada física
real desde el dispositivo de entrada, para leer el nuevo grupo de trozos
“lógicos” de datos.
Resumen 645
646 Capítulo 14 Archivos y fl ujos
Sección 14.8 Abrir archivos con JFileChooser
• La clase JFileChooser se utiliza para mostrar un cuadro de diálogo, que
permite a los usuarios de un programa
seleccionar archivos con facilidad, mediante una GUI.
aplicación de acceso directo
apuntador de posición de archivo
archivo
archivo binario
archivo de acceso secuencial
archivo de procesamiento por lotes
archivo de sólo lectura
archivo de texto
archivos de acceso directo
arreglo de bytes envuelto
base de datos
bit (dígito binario)
búfer
búfer de memoria
byte, tipo de datos
campo
CANCEL_OPTION, constante de la clase JFileChooser
canRead, método de la clase File
canWrite, método de la clase File
capacidad
-classpath, argumento de línea de comandos para java
-classpath, argumento de línea de comandos para
javac
clave de registro
conjunto de caracteres
conjunto de caracteres ASCII (Código estándar estadounidense
para el intercambio de información)
DataInput, interfaz
DataInputStream, clase
DataOutput, interfaz
DataOutputStream, clase
datos persistentes
dígito decimal
DIRECTORIES_ONLY, constante de la clase JFileChooser
directorio
directorio padre
directorio raíz
disco
disco óptico
dispositivos de almacenamiento secundario
EndOfFileException, excepción
envoltura de objetos fl ujo
exists, método de la clase File
exit, método de la clase System
File, clase
FileInputStream, clase
FileOutputStream, clase
FileReader, clase
FILES_AND_DIRECTORIES, constante de la clase JFile-
Chooser
FILES_ONLY, constante de la clase JFileChooser
FileWriter, clase
fl ujo basado en bytes
fl ujo basado en caracteres
fl ujo de bytes
Formatter, clase
getAbsolutePath, método de la clase File
getName, método de la clase File
getParent, método de la clase File
getPath, método de la clase File
getSelectedFile, método de la clase JFileChooser
InputStream, clase
interfaz de marcado
IOException, excepción
isAbsolute, método de la clase File
isDirectory, método de la clase File
isFile, método de la clase File
java.io, paquete
jerarquía de datos
JFileChooser, clase
JFileChooser, cuadro de diálogo
lastModified, método de la clase File
length, método de la clase File
list, método de la clase File
marcador de fi n de archivo
nombre de directorio
NoSuchElementException, excepción
ObjectInputStream, clase
ObjectOutputStream, clase
objeto deserializado
objeto fl ujo
objeto fl ujo de error estándar
objeto serializado
operación física de entrada
operación física de salida
operaciones lógicas de entrada
operaciones lógicas de salida
OutputStream, clase
pathSeparator, campo static de la clase File
PrintStream, clase
PrintWriter, clase
procesamiento de archivos
procesamiento de fl ujos
Reader, clase
readLine, método de la clase BufferedReader
readObject, método de la clase ObjectInputStream
readObject, método de la interfaz ObjectInput
registro
registro de longitud fi ja
ruta absoluta
Terminología
ruta relativa
secuencia de comandos de shell
Serializable, interfaz
serialización de objetos
setErr, método de la clase System
setIn, método de la clase System
setOut, método de la clase System
setSelectionMode de la clase JFileChooser
showOpenDialog de la clase JFileChooser
sistema de administración de bases de datos (DBMS)
System.err (fl ujo de error estándar)
transient, palabra clave
truncada
Unicode, conjunto de caracteres
URI (Identifi cador uniforme de recursos)
writeBoolean, método de la interfaz DataOutput
writeByte, método de la interfaz DataOutput
writeBytes, método de la interfaz DataOutput
writeChar, método de la interfaz DataOutput
writeChars, método de la interfaz DataOutput
writeDouble, método de la interfaz DataOutput
writeFloat, método de la interfaz DataOutput
writeInt, método de la interfaz DataOutput
writeLong, método de la interfaz DataOutput
writeObject, método de la clase ObjectOutputStream
writeObject, método de la interfaz ObjectOutput
Writer, clase
writeShort, método de la interfaz DataOutput
writeUTF, método de la interfaz DataOutput

Más contenido relacionado

La actualidad más candente

Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de javainnovalabcun
 
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoEsquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoJuan Anaya
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y gruposJACKELIN SORALUZ
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)UAEMex
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 
Squirrelmail Debian
Squirrelmail DebianSquirrelmail Debian
Squirrelmail DebianVellidin
 
Tabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOTabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOliras loca
 
Examen Capitulo 6 de Cisco
Examen Capitulo 6 de CiscoExamen Capitulo 6 de Cisco
Examen Capitulo 6 de CiscoDaniiel Campos
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
El dba(administracion de base de datos)
El dba(administracion de base de datos)El dba(administracion de base de datos)
El dba(administracion de base de datos)UTN
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Diseño físico de base de datos - Part I
Diseño físico de base de datos - Part IDiseño físico de base de datos - Part I
Diseño físico de base de datos - Part IJesús Canales Guando
 
Como realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerJenny Lophezz
 
Redes y topologias (PRUEBA Y EJEMPLO)
Redes y topologias (PRUEBA Y EJEMPLO) Redes y topologias (PRUEBA Y EJEMPLO)
Redes y topologias (PRUEBA Y EJEMPLO) LufeLao
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtualkerlly villon
 

La actualidad más candente (20)

Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzanoEsquemas de seguridad en los sistemas de bases de datos juan anaya manzano
Esquemas de seguridad en los sistemas de bases de datos juan anaya manzano
 
Protocolo arp
Protocolo arpProtocolo arp
Protocolo arp
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y grupos
 
Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)Modelos de acceso a la memoria(uma,numa,coma,norma)
Modelos de acceso a la memoria(uma,numa,coma,norma)
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Dhcp
DhcpDhcp
Dhcp
 
Squirrelmail Debian
Squirrelmail DebianSquirrelmail Debian
Squirrelmail Debian
 
Memorias semiconductoras
Memorias semiconductorasMemorias semiconductoras
Memorias semiconductoras
 
Tabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOTabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCO
 
Gestores de base de datos
Gestores de base de datosGestores de base de datos
Gestores de base de datos
 
Examen Capitulo 6 de Cisco
Examen Capitulo 6 de CiscoExamen Capitulo 6 de Cisco
Examen Capitulo 6 de Cisco
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
El dba(administracion de base de datos)
El dba(administracion de base de datos)El dba(administracion de base de datos)
El dba(administracion de base de datos)
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Diseño físico de base de datos - Part I
Diseño físico de base de datos - Part IDiseño físico de base de datos - Part I
Diseño físico de base de datos - Part I
 
Como realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracerComo realizar una red lan básica con packet tracer
Como realizar una red lan básica con packet tracer
 
Redes y topologias (PRUEBA Y EJEMPLO)
Redes y topologias (PRUEBA Y EJEMPLO) Redes y topologias (PRUEBA Y EJEMPLO)
Redes y topologias (PRUEBA Y EJEMPLO)
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
 

Destacado

Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 
Administracion de datos unidad 1
Administracion de datos unidad 1Administracion de datos unidad 1
Administracion de datos unidad 1Juan Anaya
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaIngeniería Nica
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosJanet Brigyth Camacho Medina
 
Procesos de un programa de gestion documental
Procesos de un programa de gestion documentalProcesos de un programa de gestion documental
Procesos de un programa de gestion documentalbbrti
 

Destacado (7)

Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Unidad 6: Flujos y Archivos Ejercicio 4
Unidad 6: Flujos y Archivos Ejercicio 4Unidad 6: Flujos y Archivos Ejercicio 4
Unidad 6: Flujos y Archivos Ejercicio 4
 
Administracion de datos unidad 1
Administracion de datos unidad 1Administracion de datos unidad 1
Administracion de datos unidad 1
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en Java
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a Objetos
 
Procesos de un programa de gestion documental
Procesos de un programa de gestion documentalProcesos de un programa de gestion documental
Procesos de un programa de gestion documental
 
Programa de Gestión Documental
Programa de Gestión DocumentalPrograma de Gestión Documental
Programa de Gestión Documental
 

Similar a Flujos y archivos (20)

Flujos y archivo en java
Flujos y archivo en javaFlujos y archivo en java
Flujos y archivo en java
 
Flujos y archivos
Flujos y archivosFlujos y archivos
Flujos y archivos
 
S7-POO-4.1 Archivos Genéricos
S7-POO-4.1 Archivos GenéricosS7-POO-4.1 Archivos Genéricos
S7-POO-4.1 Archivos Genéricos
 
S7-Archivos
S7-ArchivosS7-Archivos
S7-Archivos
 
Programación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivos
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos en Java
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y Salida
 
S7 p2
S7 p2S7 p2
S7 p2
 
S7-P2.pptx
S7-P2.pptxS7-P2.pptx
S7-P2.pptx
 
03. Archivos Completo Obliogatorio Para Imprimir.pdf
03. Archivos Completo Obliogatorio Para Imprimir.pdf03. Archivos Completo Obliogatorio Para Imprimir.pdf
03. Archivos Completo Obliogatorio Para Imprimir.pdf
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Lab archivos
Lab archivosLab archivos
Lab archivos
 
Controladora de perifericos
Controladora de perifericos Controladora de perifericos
Controladora de perifericos
 
Archivos 15
Archivos 15Archivos 15
Archivos 15
 
Java
JavaJava
Java
 
Administracion de archivos
Administracion de archivosAdministracion de archivos
Administracion de archivos
 
Tipos de almacenamiento android básico sesion2
Tipos de almacenamiento android básico sesion2Tipos de almacenamiento android básico sesion2
Tipos de almacenamiento android básico sesion2
 
3.sistema de archivos
3.sistema de archivos3.sistema de archivos
3.sistema de archivos
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 

Flujos y archivos

  • 1. Sección 14.1 Introducción • Los datos que se almacenan en variables y arreglos son temporales; se pierden cuando una variable local queda fuera de alcance, o cuando el programa termina. Las computadoras utilizan archivos para la retención a largo plazo de grandes cantidades de datos, incluso después de que los programas que crearon los datos terminan de ejecutarse. • Los datos persistentes que se mantienen en archivos existen más allá de la duración de la ejecución del programa. • Las computadoras almacenan los archivos en dispositivos de almacenamiento secundario, como los discos duros. Sección 14.2 Jerarquía de datos • El elemento de datos más pequeño en una computadora puede asumir el valor 0 o 1, y se le conoce como bit. En última instancia, una computadora procesa todos los elementos de datos como combinaciones de ceros y unos. • El conjunto de caracteres de la computadora es el conjunto de todos los caracteres que se utilizan para escribir programas y representar datos. • Los caracteres en Java son Unicode y están compuestos de dos bytes, cada uno de los cuales se compone de ocho bits. • Así como los caracteres están compuestos de bits, los campos se componen de caracteres o bytes. Un campo es un grupo de caracteres o bytes que transmite un signifi cado. • Los elementos de datos procesados por las computadoras forman una jerarquía de datos, la cual se vuelve más grande y compleja en estructura, a medida que progresamos de bits a caracteres, luego a campos, y así en lo sucesivo. • Por lo general, varios campos componen un registro (que se implementa como class en Java). • Un registro es un grupo de campos relacionados. • Un archivo es un grupo de registros relacionados. • Para facilitar la obtención de registros específi cos de un archivo, se elije por lo menos un campo en cada registro como clave. Una clave de registro identifi ca que un registro pertenece a una persona o entidad específi ca, y es único para cada registro. • Existen muchas formas de organizar los registros en un archivo. La más común se llama archivo secuencial, en el cual los registros se almacenan en orden, en base al campo clave de registro. • Por lo general, a un grupo de archivos relacionados se le denomina base de datos. Una colección de programas diseñados para crear y administrar bases de datos se conoce como sistema de administración de bases de datos (DBMS). Sección 14.3 Archivos y flujos • Java ve a cada archivo como un flujo secuencial de bytes. • Cada sistema operativo cuenta con un mecanismo para determinar el fi n de un archivo, como un marcador de fi n
  • 2. de archivo o la cuenta de los bytes totales en el archivo, que se registra en una estructura de datos administrativa, manejada por el sistema. • Los flujos basados en bytes representan datos en formato binario. • Los flujos basados en caracteres representan datos como secuencias de caracteres. • Los archivos que se crean usando flujos basados en bytes son archivos binarios. Los archivos que se crean usando flujos basados en caracteres son archivos de texto. Los archivos de texto se pueden leer mediante editores de texto, mientras que los archivos binarios se leen mediante un programa que convierte esos datos en un formato legible para los humanos. • Java también puede asociar los flujos con distintos dispositivos. Tres objetos fl ujo se asocian con dispositivos cuando un programa de Java empieza a ejecutarse: System.in, System.out y System.err. • El paquete java.io incluye definiciones para las clases de fl ujos, como FileInputStream (para la entrada basada en bytes de un archivo), FileOutputStream (para la salida basada en bytes hacia un archivo), FileReader (para la entrada basada en caracteres de un archivo) y FileWriter (para la salida basada en caracteres hacia un archivo). Los archivos se abren creando objetos de estas clases de flujos. Sección 14.4 La clase File • La clase File se utiliza para obtener información acerca de los archivos y directorios. • Las operaciones de entrada y salida basadas en caracteres se pueden llevar a cabo con las clases Scanner y Formatter. • La clase Formatter permite mostrar datos con formato en la pantalla, o enviarlos a un archivo, de una manera similar a System.out.printf. • La ruta de un archivo o directorio especifi ca su ubicación en el disco. • Una ruta absoluta contiene todos los directorios, empezando con el directorio raíz, que conducen hacia un archivo o directorio específi co. Cada archivo o directorio en una unidad de disco tiene el mismo directorio raíz en su ruta. • Por lo general, una ruta relativa empieza desde el directorio en el que se empezó a ejecutar la aplicación. • Un carácter separador se utiliza para separar directorios y archivos en la ruta. Sección 14.5 Archivos de texto de acceso secuencial • Java no impone una estructura en un archivo; las nociones como los registros no existen como parte del lenguaje de Java. El programador debe estructurar los archivos para satisfacer los requerimientos de una aplicación. • Para obtener datos de un archivo en forma secuencial, los programas comúnmente empiezan a leer desde el principio del archivo y leen todos los datos en forma consecutiva, hasta encontrar la información deseada.
  • 3. • Los datos en muchos archivos secuenciales no se pueden modifi car sin el riesgo de destruir otros datos en el archivo. Por lo tanto, los registros en un archivo de acceso secuencial normalmente no se actualizan directamente en su ubicación. En vez de ello, se vuelve a escribir el archivo completo. Sección 14.6 Serialización de objetos • Java cuenta con un mecanismo llamado serialización de objetos, el cual permite escribir o leer objetos completos mediante un fl ujo. • Un objeto serializado es un objeto que se representa como una secuencia de bytes, e incluye los datos del objeto, así como información acerca del tipo del objeto y los tipos de datos almacenados en el mismo. • Una vez que se escribe un objeto serializado en un archivo, se puede leer del archivo y deserializarse; es decir, se puede utilizar la información de tipo y los bytes que representan al objeto para recrearlo en la memoria. • Las clases ObjectInputStream y ObjectOutputStream, que implementan en forma respectiva a las interfaces ObjectInput y ObjectOutput, permiten leer o escribir objetos completos de/a un fl ujo (posiblemente un archivo). • Sólo las clases que implementan a la interfaz Serializable pueden serializarse y deserializarse con objetos ObjectOutputStream y ObjectInputStream. Sección 14.7 Clases adicionales de java.io • La interfaz ObjectOutput contiene el método writeObject, el cual recibe un objeto Object que implementa a la interfaz Serializable como argumento y escribe su información en un objeto OutputStream. • La interfaz ObjectInput contiene el método readObject, que lee y devuelve una referencia a un objeto Object de un objeto InputStream. Una vez que se ha leído un objeto, su referencia puede convertirse al tipo actual del objeto. • El uso de búfer es una técnica para mejorar el rendimiento de E/S. Con un objeto BufferedOutputStream, cada instrucción de salida no necesariamente produce una transferencia física real de datos al dispositivo de salida. En vez de ello, cada operación de salida se dirige hacia una región en memoria llamada búfer, la cual es lo bastante grande como para contener los datos de muchas operaciones de salida. La transferencia actual al dispositivo de salida se realiza entonces en una sola operación de salida física extensa cada vez que se llena el búfer. • Con un objeto BufferedInputStream, muchos trozos “lógicos” de datos de un archivo se leen como una sola operación de entrada física extensa y se colocan en un búfer de memoria. A medida que un programa solicita cada nuevo
  • 4. trozo de datos, se obtiene del búfer. Cuando el búfer está vacío, se lleva a cabo la siguiente operación de entrada física real desde el dispositivo de entrada, para leer el nuevo grupo de trozos “lógicos” de datos. Resumen 645 646 Capítulo 14 Archivos y fl ujos Sección 14.8 Abrir archivos con JFileChooser • La clase JFileChooser se utiliza para mostrar un cuadro de diálogo, que permite a los usuarios de un programa seleccionar archivos con facilidad, mediante una GUI. aplicación de acceso directo apuntador de posición de archivo archivo archivo binario archivo de acceso secuencial archivo de procesamiento por lotes archivo de sólo lectura archivo de texto archivos de acceso directo arreglo de bytes envuelto base de datos bit (dígito binario) búfer búfer de memoria byte, tipo de datos campo CANCEL_OPTION, constante de la clase JFileChooser canRead, método de la clase File canWrite, método de la clase File capacidad -classpath, argumento de línea de comandos para java -classpath, argumento de línea de comandos para javac clave de registro conjunto de caracteres conjunto de caracteres ASCII (Código estándar estadounidense para el intercambio de información) DataInput, interfaz DataInputStream, clase DataOutput, interfaz DataOutputStream, clase datos persistentes dígito decimal DIRECTORIES_ONLY, constante de la clase JFileChooser directorio directorio padre directorio raíz disco disco óptico dispositivos de almacenamiento secundario
  • 5. EndOfFileException, excepción envoltura de objetos fl ujo exists, método de la clase File exit, método de la clase System File, clase FileInputStream, clase FileOutputStream, clase FileReader, clase FILES_AND_DIRECTORIES, constante de la clase JFile- Chooser FILES_ONLY, constante de la clase JFileChooser FileWriter, clase fl ujo basado en bytes fl ujo basado en caracteres fl ujo de bytes Formatter, clase getAbsolutePath, método de la clase File getName, método de la clase File getParent, método de la clase File getPath, método de la clase File getSelectedFile, método de la clase JFileChooser InputStream, clase interfaz de marcado IOException, excepción isAbsolute, método de la clase File isDirectory, método de la clase File isFile, método de la clase File java.io, paquete jerarquía de datos JFileChooser, clase JFileChooser, cuadro de diálogo lastModified, método de la clase File length, método de la clase File list, método de la clase File marcador de fi n de archivo nombre de directorio NoSuchElementException, excepción ObjectInputStream, clase ObjectOutputStream, clase objeto deserializado objeto fl ujo objeto fl ujo de error estándar objeto serializado operación física de entrada operación física de salida operaciones lógicas de entrada operaciones lógicas de salida OutputStream, clase pathSeparator, campo static de la clase File PrintStream, clase
  • 6. PrintWriter, clase procesamiento de archivos procesamiento de fl ujos Reader, clase readLine, método de la clase BufferedReader readObject, método de la clase ObjectInputStream readObject, método de la interfaz ObjectInput registro registro de longitud fi ja ruta absoluta Terminología ruta relativa secuencia de comandos de shell Serializable, interfaz serialización de objetos setErr, método de la clase System setIn, método de la clase System setOut, método de la clase System setSelectionMode de la clase JFileChooser showOpenDialog de la clase JFileChooser sistema de administración de bases de datos (DBMS) System.err (fl ujo de error estándar) transient, palabra clave truncada Unicode, conjunto de caracteres URI (Identifi cador uniforme de recursos) writeBoolean, método de la interfaz DataOutput writeByte, método de la interfaz DataOutput writeBytes, método de la interfaz DataOutput writeChar, método de la interfaz DataOutput writeChars, método de la interfaz DataOutput writeDouble, método de la interfaz DataOutput writeFloat, método de la interfaz DataOutput writeInt, método de la interfaz DataOutput writeLong, método de la interfaz DataOutput writeObject, método de la clase ObjectOutputStream writeObject, método de la interfaz ObjectOutput Writer, clase writeShort, método de la interfaz DataOutput writeUTF, método de la interfaz DataOutputSección 14.1 Introducción • Los datos que se almacenan en variables y arreglos son temporales; se pierden cuando una variable local queda fuera de alcance, o cuando el programa termina. Las computadoras utilizan archivos para la retención a largo plazo de grandes cantidades de datos, incluso después de que los programas que crearon los datos terminan de ejecutarse. • Los datos persistentes que se mantienen en archivos existen más allá de la duración de la ejecución del programa. • Las computadoras almacenan los archivos en dispositivos de almacenamiento secundario, como los discos duros.
  • 7. Sección 14.2 Jerarquía de datos • El elemento de datos más pequeño en una computadora puede asumir el valor 0 o 1, y se le conoce como bit. En última instancia, una computadora procesa todos los elementos de datos como combinaciones de ceros y unos. • El conjunto de caracteres de la computadora es el conjunto de todos los caracteres que se utilizan para escribir programas y representar datos. • Los caracteres en Java son Unicode y están compuestos de dos bytes, cada uno de los cuales se compone de ocho bits. • Así como los caracteres están compuestos de bits, los campos se componen de caracteres o bytes. Un campo es un grupo de caracteres o bytes que transmite un signifi cado. • Los elementos de datos procesados por las computadoras forman una jerarquía de datos, la cual se vuelve más grande y compleja en estructura, a medida que progresamos de bits a caracteres, luego a campos, y así en lo sucesivo. • Por lo general, varios campos componen un registro (que se implementa como class en Java). • Un registro es un grupo de campos relacionados. • Un archivo es un grupo de registros relacionados. • Para facilitar la obtención de registros específi cos de un archivo, se elije por lo menos un campo en cada registro como clave. Una clave de registro identifi ca que un registro pertenece a una persona o entidad específi ca, y es único para cada registro. • Existen muchas formas de organizar los registros en un archivo. La más común se llama archivo secuencial, en el cual los registros se almacenan en orden, en base al campo clave de registro. • Por lo general, a un grupo de archivos relacionados se le denomina base de datos. Una colección de programas diseñados para crear y administrar bases de datos se conoce como sistema de administración de bases de datos (DBMS). Sección 14.3 Archivos y fl ujos • Java ve a cada archivo como un fl ujo secuencial de bytes. • Cada sistema operativo cuenta con un mecanismo para determinar el fi n de un archivo, como un marcador de fi n de archivo o la cuenta de los bytes totales en el archivo, que se registra en una estructura de datos administrativa, manejada por el sistema. • Los fl ujos basados en bytes representan datos en formato binario. • Los fl ujos basados en caracteres representan datos como secuencias de caracteres. • Los archivos que se crean usando fl ujos basados en bytes son archivos binarios. Los archivos que se crean usando fl ujos basados en caracteres son archivos de texto. Los archivos de texto se pueden leer mediante editores de texto,
  • 8. mientras que los archivos binarios se leen mediante un programa que convierte esos datos en un formato legible para los humanos. • Java también puede asociar los fl ujos con distintos dispositivos. Tres objetos fl ujo se asocian con dispositivos cuando un programa de Java empieza a ejecutarse: System.in, System.out y System.err. • El paquete java.io incluye defi niciones para las clases de fl ujos, como FileInputStream (para la entrada basada en bytes de un archivo), FileOutputStream (para la salida basada en bytes hacia un archivo), FileReader (para la entrada basada en caracteres de un archivo) y FileWriter (para la salida basada en caracteres hacia un archivo). Los archivos se abren creando objetos de estas clases de fl ujos. Sección 14.4 La clase File • La clase File se utiliza para obtener información acerca de los archivos y directorios. • Las operaciones de entrada y salida basadas en caracteres se pueden llevar a cabo con las clases Scanner y Formatter. • La clase Formatter permite mostrar datos con formato en la pantalla, o enviarlos a un archivo, de una manera similar a System.out.printf. • La ruta de un archivo o directorio especifi ca su ubicación en el disco. • Una ruta absoluta contiene todos los directorios, empezando con el directorio raíz, que conducen hacia un archivo o directorio específi co. Cada archivo o directorio en una unidad de disco tiene el mismo directorio raíz en su ruta. • Por lo general, una ruta relativa empieza desde el directorio en el que se empezó a ejecutar la aplicación. • Un carácter separador se utiliza para separar directorios y archivos en la ruta. Sección 14.5 Archivos de texto de acceso secuencial • Java no impone una estructura en un archivo; las nociones como los registros no existen como parte del lenguaje de Java. El programador debe estructurar los archivos para satisfacer los requerimientos de una aplicación. • Para obtener datos de un archivo en forma secuencial, los programas comúnmente empiezan a leer desde el principio del archivo y leen todos los datos en forma consecutiva, hasta encontrar la información deseada. • Los datos en muchos archivos secuenciales no se pueden modifi car sin el riesgo de destruir otros datos en el archivo. Por lo tanto, los registros en un archivo de acceso secuencial normalmente no se actualizan directamente en su ubicación. En vez de ello, se vuelve a escribir el archivo completo. Sección 14.6 Serialización de objetos • Java cuenta con un mecanismo llamado serialización de objetos, el cual permite escribir o leer objetos completos mediante un fl ujo. • Un objeto serializado es un objeto que se representa como una secuencia de bytes, e incluye los datos del
  • 9. objeto, así como información acerca del tipo del objeto y los tipos de datos almacenados en el mismo. • Una vez que se escribe un objeto serializado en un archivo, se puede leer del archivo y deserializarse; es decir, se puede utilizar la información de tipo y los bytes que representan al objeto para recrearlo en la memoria. • Las clases ObjectInputStream y ObjectOutputStream, que implementan en forma respectiva a las interfaces ObjectInput y ObjectOutput, permiten leer o escribir objetos completos de/a un fl ujo (posiblemente un archivo). • Sólo las clases que implementan a la interfaz Serializable pueden serializarse y deserializarse con objetos ObjectOutputStream y ObjectInputStream. Sección 14.7 Clases adicionales de java.io • La interfaz ObjectOutput contiene el método writeObject, el cual recibe un objeto Object que implementa a la interfaz Serializable como argumento y escribe su información en un objeto OutputStream. • La interfaz ObjectInput contiene el método readObject, que lee y devuelve una referencia a un objeto Object de un objeto InputStream. Una vez que se ha leído un objeto, su referencia puede convertirse al tipo actual del objeto. • El uso de búfer es una técnica para mejorar el rendimiento de E/S. Con un objeto BufferedOutputStream, cada instrucción de salida no necesariamente produce una transferencia física real de datos al dispositivo de salida. En vez de ello, cada operación de salida se dirige hacia una región en memoria llamada búfer, la cual es lo bastante grande como para contener los datos de muchas operaciones de salida. La transferencia actual al dispositivo de salida se realiza entonces en una sola operación de salida física extensa cada vez que se llena el búfer. • Con un objeto BufferedInputStream, muchos trozos “lógicos” de datos de un archivo se leen como una sola operación de entrada física extensa y se colocan en un búfer de memoria. A medida que un programa solicita cada nuevo trozo de datos, se obtiene del búfer. Cuando el búfer está vacío, se lleva a cabo la siguiente operación de entrada física real desde el dispositivo de entrada, para leer el nuevo grupo de trozos “lógicos” de datos. Resumen 645 646 Capítulo 14 Archivos y fl ujos Sección 14.8 Abrir archivos con JFileChooser • La clase JFileChooser se utiliza para mostrar un cuadro de diálogo, que permite a los usuarios de un programa seleccionar archivos con facilidad, mediante una GUI. aplicación de acceso directo apuntador de posición de archivo
  • 10. archivo archivo binario archivo de acceso secuencial archivo de procesamiento por lotes archivo de sólo lectura archivo de texto archivos de acceso directo arreglo de bytes envuelto base de datos bit (dígito binario) búfer búfer de memoria byte, tipo de datos campo CANCEL_OPTION, constante de la clase JFileChooser canRead, método de la clase File canWrite, método de la clase File capacidad -classpath, argumento de línea de comandos para java -classpath, argumento de línea de comandos para javac clave de registro conjunto de caracteres conjunto de caracteres ASCII (Código estándar estadounidense para el intercambio de información) DataInput, interfaz DataInputStream, clase DataOutput, interfaz DataOutputStream, clase datos persistentes dígito decimal DIRECTORIES_ONLY, constante de la clase JFileChooser directorio directorio padre directorio raíz disco disco óptico dispositivos de almacenamiento secundario EndOfFileException, excepción envoltura de objetos fl ujo exists, método de la clase File exit, método de la clase System File, clase FileInputStream, clase FileOutputStream, clase FileReader, clase FILES_AND_DIRECTORIES, constante de la clase JFile- Chooser FILES_ONLY, constante de la clase JFileChooser FileWriter, clase
  • 11. fl ujo basado en bytes fl ujo basado en caracteres fl ujo de bytes Formatter, clase getAbsolutePath, método de la clase File getName, método de la clase File getParent, método de la clase File getPath, método de la clase File getSelectedFile, método de la clase JFileChooser InputStream, clase interfaz de marcado IOException, excepción isAbsolute, método de la clase File isDirectory, método de la clase File isFile, método de la clase File java.io, paquete jerarquía de datos JFileChooser, clase JFileChooser, cuadro de diálogo lastModified, método de la clase File length, método de la clase File list, método de la clase File marcador de fi n de archivo nombre de directorio NoSuchElementException, excepción ObjectInputStream, clase ObjectOutputStream, clase objeto deserializado objeto fl ujo objeto fl ujo de error estándar objeto serializado operación física de entrada operación física de salida operaciones lógicas de entrada operaciones lógicas de salida OutputStream, clase pathSeparator, campo static de la clase File PrintStream, clase PrintWriter, clase procesamiento de archivos procesamiento de fl ujos Reader, clase readLine, método de la clase BufferedReader readObject, método de la clase ObjectInputStream readObject, método de la interfaz ObjectInput registro registro de longitud fi ja ruta absoluta Terminología ruta relativa
  • 12. secuencia de comandos de shell Serializable, interfaz serialización de objetos setErr, método de la clase System setIn, método de la clase System setOut, método de la clase System setSelectionMode de la clase JFileChooser showOpenDialog de la clase JFileChooser sistema de administración de bases de datos (DBMS) System.err (fl ujo de error estándar) transient, palabra clave truncada Unicode, conjunto de caracteres URI (Identifi cador uniforme de recursos) writeBoolean, método de la interfaz DataOutput writeByte, método de la interfaz DataOutput writeBytes, método de la interfaz DataOutput writeChar, método de la interfaz DataOutput writeChars, método de la interfaz DataOutput writeDouble, método de la interfaz DataOutput writeFloat, método de la interfaz DataOutput writeInt, método de la interfaz DataOutput writeLong, método de la interfaz DataOutput writeObject, método de la clase ObjectOutputStream writeObject, método de la interfaz ObjectOutput Writer, clase writeShort, método de la interfaz DataOutput writeUTF, método de la interfaz DataOutput