SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Informática II 1
PAQUETES
Un paquete es un conjunto de clases, interfaces y
subpaquetes relacionados.
El paquete define un ámbito de visibilidad: los
miembros que no tienen declaración explícita de
ámbito (public, private,etc.)
Informática II 2
PAQUETES
Para declarar un paquete:
package <nombre>;
Una declaración de package debe aparecer en primer
lugar en el archivo fuente, antes de cualquier declaración
de clase o interface y sólo puede haber una por archivo
fuente.
Informática II 3
PAQUETES
El nombre de cada tipo dentro de un paquete tiene
implícitamente prefijado el nombre del paquete.
El código definido fuera del paquete que necesita cosas
definidas en el paquete, debe importar todo el paquete
con una sentencia import, o cualificar el nombre de los
tipos que necesita anteponiéndole el nombre del
paquete. La sentencia import va detrás de cualquier
linea de package pero delante de todo lo demás.
Informática II 4
PAQUETES
Todo lo que está definido dentro de un paquete está
disponible para ese paquete.
Las clases e interfaces de un paquete tienen dos accesos:
public: una clase o interface public es accesible a código
fuera de ese paquete.
Las clases que no son public son accesibles para el código
del paquete en que se están definiendo.
Los miembros de una clase que no son declarados como
private, protected ni public, están disponible sólo para
código del paquete, es decir tienen ámbito de paquete.
Informática II 5
PAQUETES
Los paquetes deben diseñarse de forma que contengan
clases relacionadas funcionalmente.
Los paquetes se pueden anidar.
java.lang
Los identificadores del paquete java no son accesibles
para el código del paquete lang.
Informática II 6
EL PAQUETE DE E/S
•La E/S (entrada/salida) de Java se define en términos
de flujos (streams).
•Los flujos son secuencias ordenadas de datos que
tienen una fuente (flujos de entrada) o un destino
(flujos de salida).
•El paquete java.io, es el que contiene todos las clases
que representan estos flujos.
Informática II 7
EL PAQUETE DE E/S
•La clase de excepción IOException la utilizan la
mayoría de los métodos de las clases de este paquete,
sin perjuicio de que se utilicen excepciones más
específicas.
•Cada vez que desea realizar alguna operación de E/S,
debo importar el paquete con import java.io.
•Este paquete contiene algunas clases abstractas,
interfaces y clases concretas.
Informática II 8
EL PAQUETE DE E/S
A partir de las clases abstractas y las interfaces, la mayor
parte de los flujos soportan los métodos de esas clases
básicas con pocas o nulas adiciones.
Los distintos tipos de flujos están generalmente
apareados, donde existe un FileInputStream, suele haber
un FileOutputStream.
Informática II 9
EL PAQUETE DE E/S
Input Output Objetos manip.
Abstractas Input Stream Output Stream bytes
Interfaces Data Input Data Output. tipos fundam
ObjectInput ObjectOutput objetos
Concretas Data Input Stream Data Output Stream tipos fundam
FileInputStream FileOutputStream bytes
ObjectInputStream ObjectOutputStream objetos
Informática II 10
EL PAQUETE DE E/S
Implementa Extiende Manipula
Data * Stream DataInput/output *Stream tipos fun.
File*Stream -------- *Stream bytes
Object*Stream ObjectInput --------- Objects
ObjectOutput
* significa input o output según corresponda
Informática II 11
InputStream
Es una clase abstracta que define el modelo de java para
el flujo de entrada
Los métodos leen y escriben bytes desde un origen.
Constructor: InputStream( )
Informática II 12
InputStream
Algunos métodos:
•public void close ( ) throws IOException : Cierra el
flujo de entrada. Este método debe invocarse para liberar
recursos asociados con el flujo.
•public abstrac int read ( ) throws IOException : lee un
solo byte de datos desde el origen y retorna la
representación entera de ese byte.
Informática II 13
InputStream
•public int read (byte [ ] buf) throws IOException : lee
hasta que hay entrada disponible o hasta buf.length y
llena buf con los bytes leídos. Devuelve la cantidad de
bytes leídos o -1 si se alcanzó el final del flujo.
•public int read (byte [ ] buf, int off, int len) throws
IOException : lee hasta que hay entrada disponible y
llena el array buf partiendo de un desplazamiento off (se
desplaza off elementos del arreglo) y comienza a llenar
buf con len bytes o hasta que se alcanza el final del array.
Informática II 14
OutputStream
Es similar a InputStream, pero proporciona una
abstracción para hacer fluir bytes hacia un destino.
Todos los métodos de esta clase devuelven un valor
void y lanzan una IOException en caso de error.
Constructor:
public OutputStream( )
Informática II 15
OutputStream
Algunos métodos:
public void close ( ) throws IOException : cierra el flujo
de salida. Los intentos posteriores de escritura lanzarán
una IOException.
public void write (byte [ ] b) throws IOException :
escribe b.length bytes desde el array b en su stream de
salida .
Informática II 16
OutputStream
public void write (byte [ ] b, int off, int len) throws
IOException: escribe len bytes desde el array b,
comenzando con el deplazamiento de off , en su stream
de salida.
public abstrac void write (int b) throws IOException :
escribe b como byte
public void flush ( ) throws IOException: vacía el flujo,
de forma que los bytes contenidos en un buffer sean
expulsados del flujo.
Informática II 17
Tipos de flujos estándar
El paquete java.io define distintos tipos de flujos.
Los más usuales son:
FileInputStream
FileOutputStream
Obtienen o escriben bytes a un
archivo
Informática II 18
Tipos de flujos estándar
DataInputStream
DataOutputStream
DataInput
DataOutput
Estas interfaces definen métodos para
transmitir tipos primitivos Java dentro
de un flujo.
Proporcionan una implementación
por defecto de los métodos de las
interfaces.
Informática II 19
Tipos de flujos estándar
ObjectInput
ObjectOutput
Extienden de DataInput y DataOutput
para la lectura y escritura de objetos.
No lo soportan la versión de Java
instalada en el laboratorio. Es
soportado a partir de la versión 1.2.
Informática II 20
Flujos Data
Las interfaces DataInput y DataOutput definen métodos
para transmitir tipos primitivos Java dentro de un flujo.
Las clases DataInputStream y DataOutputStream
proporcionan una implementación por defecto para cada
interfaz.
Informática II 21
Interface DataInput
Los métodos de lectura mas usuales son:
boolean readBoolean() : lee un byte de entrada y retorna
true si el byte no es cero, en caso contrario retorna false.
byte readByte() : lee y retorna un byte de entrada.
char readChar() : lee y retorna el valor del char.
double readDouble() : lee 8 bytes y retorna el valor de un
double.
float readFloat() : lee cuatro bytes y retorna el valor de un
float.
Informática II 22
Interface DataInput
void readFully(byte [ ] b) : lee algunos bytes desde un
stream de entrada y los almacena en el array b.
void readFully(byte [ ] b, int off, int len) : lee len bytes
desde un flujo de entrada.
int readInt() : lee cuatro bytes y retorna un valor int.
String readLine() : lee la próxima línea de texto desde la
entrada.
long readLong() : lee ocho bytes y retorna un valor long.
short readShort() : lee dos bytes y retorna un short.
Informática II 23
Interface DataOutput
Los métodos de escritura mas usuales son:
void write(byte [ ] b) : escribe en un flujo de salida todos
los bytes del array b.
void write (byte [ ] b, int off, int len) : escribe len bytes
desde el array b con un desplazamiento de off, en el flujo
de salida.
void write (int b) : escribe en el flujo de salida los ocho
bits de menor orden del argumento b.
void writeBoolean (boolean b) : escribe un valor booleano
en el flujo de salida.
Informática II 24
Interface DataOutput
void writeByte(int v) : escribe en el flujo de salida los
ocho bits de orden más bajo del argumento v.
void writeBytes(String s): escribe un String en el flujo
de salida.
void writeChar(): escribe un valor char, el cual está
compuesto de dos bytes, en el flujo de salida.
void writeChars(String s) : escribe cada carácter del
String, en el flujo de salida, en orden, dos bytes por
carácter.
Informática II 25
Interface DataOutput
void writeDouble(double v) : escribe un valor double, el
cual está compuesto de ocho bytes, en el flujo de salida.
void writeFloat(float v) : escribe un valor float, el cual
está compuesto de cuatro bytes, en el flujo de salida.
void writeInt(int v) : escribe un valor int, el cual está
compuesto de cuatro bytes, en el flujo de salida.
void writeLong(long v) : escribe un valor long, el cual
está compuesto de cuatro bytes, en el flujo de salida.
void writeShort(int v) : escribe dos bytes en el flujo de
salida para representar el valor del argumento.
Informática II 26
FileInputStream
FileInputStream utiliza archivos de datos reales como
base del flujo de entrada.
FileInputStream(String name) : Este constructor inicializa
un FileInputStream recientemente creado, abriendo una
conección a un archivo cuyo nombre es name.
Si el archivo no puede ser abierto una excepción
FileNotFoundException es lanzada.
Informática II 27
FileOutputStream
FileOutputStream comparte el mismo estilo de
constructores que FileInputStream. FileOutputStream crea
el archivo antes de antes de abrirlo, si no existe.
FileOutputStream(string name) : Este constructor inicializa
un FileOutputStream recientemente creado, abriendo una
conección a un archivo cuyo nombre es name. Si se
produce un error estos métodos lanzarán una IOException.
Informática II 28
La interface ObjectInput
La interface ObjectInput extiende de DataInput, para
incluir la lectura de objetos.
Object readObject() : lee y retorna el objeto leído
Informática II 29
La interface ObjectOutput
La interface ObjectOutput extiende de DataOutput, para
incluir la escritura de objetos.
void writeObject( Object obj) : escribe el objeto obj en el
flujo de salida.
Informática II 30
Excepciones de
entrada/salida mas usuales
FileNotFoundException: indica que la apertura de un
archivo ha fracasado
InterruptedIOExecption: indica que una operación de E/S
se interrumpió.
IOException: indica que un error de E/S de alguna clase
ocurrió.
Informática II 31
Serialización de objetos
Serializar es almacenar objetos de forma
permanente (p. e. en un archivo o en un
flujo de comunicación)
No es necesario realizar conversiones
Útil para portabilidad y para compartir objetos
entre aplicaciones
Informática II 32
Interfaz de serialización
Cualquier clase que desee poder serializar sus
objetos debe implementar el interfaz
Serializable
En esta implementación el objeto define como debe
almacenarse o recuperarse de un archivo
Si se trata de serializar un objeto que no lo
implementa se obtiene la excepción
NotSerializableException
No se serializan los miembros static
Informática II 33
•Las clases que necesiten algún tratamiento especial
en la serialización deben implementar estos dos
métodos
private void writeObject (java. io. ObjectOutputStream
salida)
throws IOException
private void readObject (java. io. ObjectInputStream
entrada)
throws IOException, ClassNotFoundException;
Interfaz de serialización
Informática II 34
import java. io.*;
public class Punto implements Serializable {
int x; int y;
public Punto( int x, int y) { this. x = x; this. y =
y;}
public String toString() { return “Punto[“ + x +
”,” + y + ”]”; }
Serialización: ejemplo
Informática II 35
public class AplicacionSerializacion {
public static void main( String args[]) throws
IOException, ClassNotFoundException {
Punto punto = new Punto( 1, 5);
ObjectOutputStream archivoObjetosSal = new
ObjectOutputStream(
new FileOutputStream(" temp"));
archivoObjetosSal. writeObject( punto);
archivoObjetosSal. close();
Serialización: ejemplo
Informática II 36
ObjectInputStream archivoObjetosEnt = new
ObjectInputStream(
new FileInputStream(" temp"));
Punto punt = (Punto) archivoObjetosEnt.
readObject();
archivoObjetosEnt. close();
System. out. println( punt );}}
Serialización: ejemplo

Más contenido relacionado

La actualidad más candente

Strings in c
Strings in cStrings in c
Strings in cvampugani
 
JAVA Variables and Operators
JAVA Variables and OperatorsJAVA Variables and Operators
JAVA Variables and OperatorsSunil OS
 
Expression evaluation
Expression evaluationExpression evaluation
Expression evaluationJeeSa Sultana
 
Screensaver presentation
Screensaver presentationScreensaver presentation
Screensaver presentationMatt Dickson
 
Java Presentation For Syntax
Java Presentation For SyntaxJava Presentation For Syntax
Java Presentation For SyntaxPravinYalameli
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Rubi Veronica Chimal Cuxin
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Milton Nicolay
 
4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuarioLaura Folgado Galache
 
ArrayList in JAVA
ArrayList in JAVAArrayList in JAVA
ArrayList in JAVASAGARDAVE29
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 

La actualidad más candente (20)

Strings in c
Strings in cStrings in c
Strings in c
 
JAVA Variables and Operators
JAVA Variables and OperatorsJAVA Variables and Operators
JAVA Variables and Operators
 
Expression evaluation
Expression evaluationExpression evaluation
Expression evaluation
 
File in C language
File in C languageFile in C language
File in C language
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Screensaver presentation
Screensaver presentationScreensaver presentation
Screensaver presentation
 
Java Presentation For Syntax
Java Presentation For SyntaxJava Presentation For Syntax
Java Presentation For Syntax
 
Stack and Queue
Stack and Queue Stack and Queue
Stack and Queue
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Java string handling
Java string handlingJava string handling
Java string handling
 
StringTokenizer in java
StringTokenizer in javaStringTokenizer in java
StringTokenizer in java
 
Packages in java
Packages in javaPackages in java
Packages in java
 
Flujo datos
Flujo datosFlujo datos
Flujo datos
 
Oop java
Oop javaOop java
Oop java
 
Java inheritance
Java inheritanceJava inheritance
Java inheritance
 
Queue
QueueQueue
Queue
 
Fundamentos de programación librería string C++
Fundamentos de programación librería string C++Fundamentos de programación librería string C++
Fundamentos de programación librería string C++
 
4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario
 
ArrayList in JAVA
ArrayList in JAVAArrayList in JAVA
ArrayList in JAVA
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 

Similar a Java io

Trabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iiTrabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iirafaelrojas91
 
Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IIrafaelrojas91
 
PREGUNTAS
PREGUNTAS PREGUNTAS
PREGUNTAS arecerv
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gioRobert Wolf
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)GENEDURAN
 
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividadS2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividadLuis Fernando Aguas Bucheli
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gilreyking3000
 
Preguntas de programacion
Preguntas de programacionPreguntas de programacion
Preguntas de programacionariannalizeeth
 
Preguntasss
PreguntasssPreguntasss
Preguntasss0cero
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y SalidaCristian Andres
 
Preguntas para programacion
Preguntas para programacionPreguntas para programacion
Preguntas para programacionElizabeth Reyna
 
Preguntas para Programacion
Preguntas para ProgramacionPreguntas para Programacion
Preguntas para ProgramacionElizabeth Reyna
 

Similar a Java io (20)

Trabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iiTrabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica ii
 
Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica II
 
PREGUNTAS
PREGUNTAS PREGUNTAS
PREGUNTAS
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gio
 
Java
JavaJava
Java
 
Serializacion
SerializacionSerializacion
Serializacion
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)
 
Java
JavaJava
Java
 
Preguntas del examen
Preguntas del  examenPreguntas del  examen
Preguntas del examen
 
Preguntas de-examen
Preguntas de-examenPreguntas de-examen
Preguntas de-examen
 
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividadS2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
S2-EDD-1.2 Paso de estructuras y punteros a funciones, recursividad
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gil
 
Preguntas de programacion
Preguntas de programacionPreguntas de programacion
Preguntas de programacion
 
Preguntasss
PreguntasssPreguntasss
Preguntasss
 
Java - No numérica - II
Java - No numérica - IIJava - No numérica - II
Java - No numérica - II
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y Salida
 
Utilización de la clase math
Utilización de la clase mathUtilización de la clase math
Utilización de la clase math
 
ARCHIVOS
ARCHIVOS ARCHIVOS
ARCHIVOS
 
Preguntas para programacion
Preguntas para programacionPreguntas para programacion
Preguntas para programacion
 
Preguntas para Programacion
Preguntas para ProgramacionPreguntas para Programacion
Preguntas para Programacion
 

Último

Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...AlexaRamirez39
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdfRodrigo Cerón
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfdarosario3d
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfMiSpotify
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdfRodrigo Cerón
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarjosuesj13
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfdaa100407
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfjuanrubenc78
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfLeonardoOa4
 

Último (9)

Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdf
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizar
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdf
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdf
 

Java io

  • 1. Informática II 1 PAQUETES Un paquete es un conjunto de clases, interfaces y subpaquetes relacionados. El paquete define un ámbito de visibilidad: los miembros que no tienen declaración explícita de ámbito (public, private,etc.)
  • 2. Informática II 2 PAQUETES Para declarar un paquete: package <nombre>; Una declaración de package debe aparecer en primer lugar en el archivo fuente, antes de cualquier declaración de clase o interface y sólo puede haber una por archivo fuente.
  • 3. Informática II 3 PAQUETES El nombre de cada tipo dentro de un paquete tiene implícitamente prefijado el nombre del paquete. El código definido fuera del paquete que necesita cosas definidas en el paquete, debe importar todo el paquete con una sentencia import, o cualificar el nombre de los tipos que necesita anteponiéndole el nombre del paquete. La sentencia import va detrás de cualquier linea de package pero delante de todo lo demás.
  • 4. Informática II 4 PAQUETES Todo lo que está definido dentro de un paquete está disponible para ese paquete. Las clases e interfaces de un paquete tienen dos accesos: public: una clase o interface public es accesible a código fuera de ese paquete. Las clases que no son public son accesibles para el código del paquete en que se están definiendo. Los miembros de una clase que no son declarados como private, protected ni public, están disponible sólo para código del paquete, es decir tienen ámbito de paquete.
  • 5. Informática II 5 PAQUETES Los paquetes deben diseñarse de forma que contengan clases relacionadas funcionalmente. Los paquetes se pueden anidar. java.lang Los identificadores del paquete java no son accesibles para el código del paquete lang.
  • 6. Informática II 6 EL PAQUETE DE E/S •La E/S (entrada/salida) de Java se define en términos de flujos (streams). •Los flujos son secuencias ordenadas de datos que tienen una fuente (flujos de entrada) o un destino (flujos de salida). •El paquete java.io, es el que contiene todos las clases que representan estos flujos.
  • 7. Informática II 7 EL PAQUETE DE E/S •La clase de excepción IOException la utilizan la mayoría de los métodos de las clases de este paquete, sin perjuicio de que se utilicen excepciones más específicas. •Cada vez que desea realizar alguna operación de E/S, debo importar el paquete con import java.io. •Este paquete contiene algunas clases abstractas, interfaces y clases concretas.
  • 8. Informática II 8 EL PAQUETE DE E/S A partir de las clases abstractas y las interfaces, la mayor parte de los flujos soportan los métodos de esas clases básicas con pocas o nulas adiciones. Los distintos tipos de flujos están generalmente apareados, donde existe un FileInputStream, suele haber un FileOutputStream.
  • 9. Informática II 9 EL PAQUETE DE E/S Input Output Objetos manip. Abstractas Input Stream Output Stream bytes Interfaces Data Input Data Output. tipos fundam ObjectInput ObjectOutput objetos Concretas Data Input Stream Data Output Stream tipos fundam FileInputStream FileOutputStream bytes ObjectInputStream ObjectOutputStream objetos
  • 10. Informática II 10 EL PAQUETE DE E/S Implementa Extiende Manipula Data * Stream DataInput/output *Stream tipos fun. File*Stream -------- *Stream bytes Object*Stream ObjectInput --------- Objects ObjectOutput * significa input o output según corresponda
  • 11. Informática II 11 InputStream Es una clase abstracta que define el modelo de java para el flujo de entrada Los métodos leen y escriben bytes desde un origen. Constructor: InputStream( )
  • 12. Informática II 12 InputStream Algunos métodos: •public void close ( ) throws IOException : Cierra el flujo de entrada. Este método debe invocarse para liberar recursos asociados con el flujo. •public abstrac int read ( ) throws IOException : lee un solo byte de datos desde el origen y retorna la representación entera de ese byte.
  • 13. Informática II 13 InputStream •public int read (byte [ ] buf) throws IOException : lee hasta que hay entrada disponible o hasta buf.length y llena buf con los bytes leídos. Devuelve la cantidad de bytes leídos o -1 si se alcanzó el final del flujo. •public int read (byte [ ] buf, int off, int len) throws IOException : lee hasta que hay entrada disponible y llena el array buf partiendo de un desplazamiento off (se desplaza off elementos del arreglo) y comienza a llenar buf con len bytes o hasta que se alcanza el final del array.
  • 14. Informática II 14 OutputStream Es similar a InputStream, pero proporciona una abstracción para hacer fluir bytes hacia un destino. Todos los métodos de esta clase devuelven un valor void y lanzan una IOException en caso de error. Constructor: public OutputStream( )
  • 15. Informática II 15 OutputStream Algunos métodos: public void close ( ) throws IOException : cierra el flujo de salida. Los intentos posteriores de escritura lanzarán una IOException. public void write (byte [ ] b) throws IOException : escribe b.length bytes desde el array b en su stream de salida .
  • 16. Informática II 16 OutputStream public void write (byte [ ] b, int off, int len) throws IOException: escribe len bytes desde el array b, comenzando con el deplazamiento de off , en su stream de salida. public abstrac void write (int b) throws IOException : escribe b como byte public void flush ( ) throws IOException: vacía el flujo, de forma que los bytes contenidos en un buffer sean expulsados del flujo.
  • 17. Informática II 17 Tipos de flujos estándar El paquete java.io define distintos tipos de flujos. Los más usuales son: FileInputStream FileOutputStream Obtienen o escriben bytes a un archivo
  • 18. Informática II 18 Tipos de flujos estándar DataInputStream DataOutputStream DataInput DataOutput Estas interfaces definen métodos para transmitir tipos primitivos Java dentro de un flujo. Proporcionan una implementación por defecto de los métodos de las interfaces.
  • 19. Informática II 19 Tipos de flujos estándar ObjectInput ObjectOutput Extienden de DataInput y DataOutput para la lectura y escritura de objetos. No lo soportan la versión de Java instalada en el laboratorio. Es soportado a partir de la versión 1.2.
  • 20. Informática II 20 Flujos Data Las interfaces DataInput y DataOutput definen métodos para transmitir tipos primitivos Java dentro de un flujo. Las clases DataInputStream y DataOutputStream proporcionan una implementación por defecto para cada interfaz.
  • 21. Informática II 21 Interface DataInput Los métodos de lectura mas usuales son: boolean readBoolean() : lee un byte de entrada y retorna true si el byte no es cero, en caso contrario retorna false. byte readByte() : lee y retorna un byte de entrada. char readChar() : lee y retorna el valor del char. double readDouble() : lee 8 bytes y retorna el valor de un double. float readFloat() : lee cuatro bytes y retorna el valor de un float.
  • 22. Informática II 22 Interface DataInput void readFully(byte [ ] b) : lee algunos bytes desde un stream de entrada y los almacena en el array b. void readFully(byte [ ] b, int off, int len) : lee len bytes desde un flujo de entrada. int readInt() : lee cuatro bytes y retorna un valor int. String readLine() : lee la próxima línea de texto desde la entrada. long readLong() : lee ocho bytes y retorna un valor long. short readShort() : lee dos bytes y retorna un short.
  • 23. Informática II 23 Interface DataOutput Los métodos de escritura mas usuales son: void write(byte [ ] b) : escribe en un flujo de salida todos los bytes del array b. void write (byte [ ] b, int off, int len) : escribe len bytes desde el array b con un desplazamiento de off, en el flujo de salida. void write (int b) : escribe en el flujo de salida los ocho bits de menor orden del argumento b. void writeBoolean (boolean b) : escribe un valor booleano en el flujo de salida.
  • 24. Informática II 24 Interface DataOutput void writeByte(int v) : escribe en el flujo de salida los ocho bits de orden más bajo del argumento v. void writeBytes(String s): escribe un String en el flujo de salida. void writeChar(): escribe un valor char, el cual está compuesto de dos bytes, en el flujo de salida. void writeChars(String s) : escribe cada carácter del String, en el flujo de salida, en orden, dos bytes por carácter.
  • 25. Informática II 25 Interface DataOutput void writeDouble(double v) : escribe un valor double, el cual está compuesto de ocho bytes, en el flujo de salida. void writeFloat(float v) : escribe un valor float, el cual está compuesto de cuatro bytes, en el flujo de salida. void writeInt(int v) : escribe un valor int, el cual está compuesto de cuatro bytes, en el flujo de salida. void writeLong(long v) : escribe un valor long, el cual está compuesto de cuatro bytes, en el flujo de salida. void writeShort(int v) : escribe dos bytes en el flujo de salida para representar el valor del argumento.
  • 26. Informática II 26 FileInputStream FileInputStream utiliza archivos de datos reales como base del flujo de entrada. FileInputStream(String name) : Este constructor inicializa un FileInputStream recientemente creado, abriendo una conección a un archivo cuyo nombre es name. Si el archivo no puede ser abierto una excepción FileNotFoundException es lanzada.
  • 27. Informática II 27 FileOutputStream FileOutputStream comparte el mismo estilo de constructores que FileInputStream. FileOutputStream crea el archivo antes de antes de abrirlo, si no existe. FileOutputStream(string name) : Este constructor inicializa un FileOutputStream recientemente creado, abriendo una conección a un archivo cuyo nombre es name. Si se produce un error estos métodos lanzarán una IOException.
  • 28. Informática II 28 La interface ObjectInput La interface ObjectInput extiende de DataInput, para incluir la lectura de objetos. Object readObject() : lee y retorna el objeto leído
  • 29. Informática II 29 La interface ObjectOutput La interface ObjectOutput extiende de DataOutput, para incluir la escritura de objetos. void writeObject( Object obj) : escribe el objeto obj en el flujo de salida.
  • 30. Informática II 30 Excepciones de entrada/salida mas usuales FileNotFoundException: indica que la apertura de un archivo ha fracasado InterruptedIOExecption: indica que una operación de E/S se interrumpió. IOException: indica que un error de E/S de alguna clase ocurrió.
  • 31. Informática II 31 Serialización de objetos Serializar es almacenar objetos de forma permanente (p. e. en un archivo o en un flujo de comunicación) No es necesario realizar conversiones Útil para portabilidad y para compartir objetos entre aplicaciones
  • 32. Informática II 32 Interfaz de serialización Cualquier clase que desee poder serializar sus objetos debe implementar el interfaz Serializable En esta implementación el objeto define como debe almacenarse o recuperarse de un archivo Si se trata de serializar un objeto que no lo implementa se obtiene la excepción NotSerializableException No se serializan los miembros static
  • 33. Informática II 33 •Las clases que necesiten algún tratamiento especial en la serialización deben implementar estos dos métodos private void writeObject (java. io. ObjectOutputStream salida) throws IOException private void readObject (java. io. ObjectInputStream entrada) throws IOException, ClassNotFoundException; Interfaz de serialización
  • 34. Informática II 34 import java. io.*; public class Punto implements Serializable { int x; int y; public Punto( int x, int y) { this. x = x; this. y = y;} public String toString() { return “Punto[“ + x + ”,” + y + ”]”; } Serialización: ejemplo
  • 35. Informática II 35 public class AplicacionSerializacion { public static void main( String args[]) throws IOException, ClassNotFoundException { Punto punto = new Punto( 1, 5); ObjectOutputStream archivoObjetosSal = new ObjectOutputStream( new FileOutputStream(" temp")); archivoObjetosSal. writeObject( punto); archivoObjetosSal. close(); Serialización: ejemplo
  • 36. Informática II 36 ObjectInputStream archivoObjetosEnt = new ObjectInputStream( new FileInputStream(" temp")); Punto punt = (Punto) archivoObjetosEnt. readObject(); archivoObjetosEnt. close(); System. out. println( punt );}} Serialización: ejemplo