SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
El paquete java.io.
Manejo de las I/O.
Leo Suarez
leo@javahispano.com
http://www.javahispano.com
Julio 2001
Leo Suarez
http://www.javahispano.com
10
BufferedOutputStream (OutputStream in);
BufferedOutputStream (OuputStream in, int bufSize);
Combinación de las clases.
A continuación veremos una serie de ejemplos que combinan las clases que tratan
directamente sobre los flujos de entrada o de salida con las clases que las envuelven.
Ejemplo 4. Lectura de datos crudos (raw data).
/*
En este ejemplo leemos un fichero que contiene un flujo de bytes que
representa una imagen
2D de tamaño 128x128. Cada pixel viene codificado por 2 bytes que indican
el nivel de gris de dicho pixel. Así
mismo, escribimos en el fichero salida.txt los niveles de grises con un
"formato" de array 2D.
Este programa lee de manera correcta cualquier short, aunque exceda de
32767.
*/
import java.io.*;
class RawData {
final static int WIDTH = 128;
final static int HEIGHT = 128;
public static void main (String args[]) {
InputStream in = null;
DataInputStream dis = null;
FileOutputStream fout = null;
PrintStream miSalida = null;
int shortLeido = 0;
try {
in = new FileInputStream("Rana_128.035");//Leemos un stream de bytes
dis = new DataInputStream(in);//Envolvemos la clase de entrada (in)
para acceder a las funcionalidades de DataInput
fout = new FileOutputStream("salida.txt");
miSalida = new PrintStream(fout);//convertimos a PrintStream
}
catch(IOException e) {
System.out.println("Error al abrir el fichero");
System.exit(0);
}
catch (Exception e) {
System.out.println(e.getMessage());
System.exit(0);
}
int contX =0, contY=0;
for (contX = 0; contX < HEIGHT; contX++) {
miSalida.print("n");
for (contY = 0; contY < WIDTH; contY++) {
try {
shortLeido = dis.readUnsignedShort();//Al leer short sin signo
podemos tratar datos hasta 65535.
miSalida.print("[ " + shortLeido + " ] ");
}
El paquete java.io
Manejo de las I/O
11
catch(IOException e) {
System.out.println("Se leyó todo el fichero " + e);
}
catch (Exception e) {
System.out.println("excepción desconocida: " + e);
System.exit(0);
}
}
} // fin for exterior
try {
in.close();
fout.close();
} catch (IOException ioe) {System.out.println("No se pudo cerrar alguno
de los ficheros");}
} // end main
} //Fin RawData
Ejemplo 5. Lectura a través de la red. Carga de un fichero desde un applet.
/*
En este ejemplo cargamos un fichero a través de la red. Este ejemplo es la
manera que se suele
emplear para cargar un fichero. Como nuestra intención es leer una ristra
de caracteres hacemos
un "wrapping" tal y como explicamos.
*/
/*
<applet code = ReadFromApplet.class width = 400 height = 400>
</applet>
*/
import java.applet.Applet;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.URL;
import java.net.MalformedURLException;
public class ReadFromApplet extends Applet {
URL url;
InputStream in;
BufferedReader br;
public void init() {
try {
url = new URL(this.getCodeBase() + "Propiedades.java");
} catch (MalformedURLException mue)
{System.out.println(mue.getMessage());}
try {
in = url.openStream();//abre un flujo de bytes
//hacemos el wrapping de la clase orientada a byte para leer caracteres
br = new BufferedReader(new InputStreamReader(in));
String linea;
Leo Suarez
http://www.javahispano.com
12
while ((linea = br.readLine()) != null) {
System.out.println(linea);
}
br.close();
} catch (IOException ioe) {System.out.println(ioe.getMessage());}
}
}
Las clases orientadas a flujo de caracteres ( Character
Stream).
Aunque las clases orientadas al flujo de bytes nos proporcionan la suficiente funcionalidad
para realizar cualquier tipo de operación de entrada o salida, éstas no pueden trabajar
directamente con caracteres Unicode. Es por ello que fue necesario la creación de las clases
orientadas al flujo de caracteres para ofrecernos el soporte necesario para el tratamiento de
caracteres.
Como ya dijimos al principio, estas clases nacen de las clases abstractas Readery Writer.
Las clases concretas derivadas de ellas tienen su homónimo en las clases concretas derivadas
de InputStream y OutputStream, por tanto, la explicación hecha para todas ellas tiene validez
para las orientadas a caracter salvo quizás algunos matices que podrás completar con las
especificaciones por lo que omitiremos la explicación detallada de cada una de ellas.
No obstante, os daré una relación de las clases más importantes. Son las siguientes:
1. Acceso a fichero: FileReader y FileWriter.
2. Acceso a caracter: CharArrayReader y CharArrayWriter.
3. Buferización de datos: BufferedReader y BufferedWriter.
Serialización.
La serialización es el proceso de escribir el estado de un objeto a un flujo de bytes. La utilidad
de esta operación se manifiesta cuando queremos salvar el estado de nuestro programa en un
sitio de almacenamiento permanente o, en otras palabras, cuando queremos hacer la
persistencia de nuestro programa. Así, en un momento posterior dado podemos recuperar
estos objetos deserializándolos.
Otra de las situaciones en las que necesitamos recurrir a la serialización es cuando hacemos
una implementación RMI. La Invocación de Métodos Remotos consiste en que un objeto Java
de una máquina pueda llamar a un método de un objeto Java que está en otra máquina
diferente. Entonces, la máquina que lo invoca serializa el objeto y lo transmite mientras que la
máquina receptora lo deserializa.
Dado que cuando un objeto se serializa, éste puede tener referencias a otros objetos que a la
vez lo tendrán a otros, los métodos para la serialización y deserialización de objetos
contemplan esta posibilidad. Así, cuando serializamos un objeto que está en la cima del grafo
de objetos, todos los objetos a los que se hace referencia son también serializados. El proceso
inverso de recuperación de objetos hará justo lo contrario.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
 
Presentacion java
Presentacion javaPresentacion java
Presentacion java
 
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
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientes
 
ARCHIVOS
ARCHIVOS ARCHIVOS
ARCHIVOS
 
preparedstatement
preparedstatementpreparedstatement
preparedstatement
 
Ingresos y salidas de datos JAVA
Ingresos y salidas de datos JAVAIngresos y salidas de datos JAVA
Ingresos y salidas de datos JAVA
 
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
 
COMANDOS DE JAVA
COMANDOS DE JAVACOMANDOS DE JAVA
COMANDOS DE JAVA
 
Thread
ThreadThread
Thread
 
Laboratorio de integración JFlex y CUP
Laboratorio de integración JFlex y CUPLaboratorio de integración JFlex y CUP
Laboratorio de integración JFlex y CUP
 
Unidad 6: Flujos y Archivos Ejercicio 1
Unidad 6: Flujos y Archivos Ejercicio 1Unidad 6: Flujos y Archivos Ejercicio 1
Unidad 6: Flujos y Archivos Ejercicio 1
 
Unidad 6: Flujos y Archivos Ejercicio 2
Unidad 6: Flujos y Archivos Ejercicio 2Unidad 6: Flujos y Archivos Ejercicio 2
Unidad 6: Flujos y Archivos Ejercicio 2
 
J Flex Cup
J Flex CupJ Flex Cup
J Flex Cup
 
Unidad 6: Flujos y Archivos Ejercicio 3
Unidad 6: Flujos y Archivos Ejercicio 3Unidad 6: Flujos y Archivos Ejercicio 3
Unidad 6: Flujos y Archivos Ejercicio 3
 
Ejercicioscliente servidor
Ejercicioscliente servidorEjercicioscliente servidor
Ejercicioscliente servidor
 
Uso de hilos
Uso de hilosUso de hilos
Uso de hilos
 
Comandos java
Comandos javaComandos java
Comandos java
 
Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)
 

Similar a Suarez l 2001 el paquete java io

No numerica ii
No numerica iiNo numerica ii
No numerica iiJ_cordero
 
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
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en javaWhaleejaa Wha
 
Manejo+de+archivos+en+java
Manejo+de+archivos+en+javaManejo+de+archivos+en+java
Manejo+de+archivos+en+javaWhaleejaa Wha
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en javaWhaleejaa Wha
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointJ_cordero
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladoresSheyli Patiño
 
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar informaciónJAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar informaciónUniversidad Santo Tomás
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javaingyon
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesDani Latorre
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DBjubacalo
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2juliocombativo
 

Similar a Suarez l 2001 el paquete java io (20)

No numerica ii
No numerica iiNo numerica ii
No numerica ii
 
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)
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
 
Manejo+de+archivos+en+java
Manejo+de+archivos+en+javaManejo+de+archivos+en+java
Manejo+de+archivos+en+java
 
Manejo de archivos en java
Manejo de archivos en javaManejo de archivos en java
Manejo de archivos en java
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power point
 
Ejercicio compiladores
Ejercicio compiladoresEjercicio compiladores
Ejercicio compiladores
 
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar informaciónJAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para   guardar información
JAVA: TRY-CATCH-FINALLY y Uso de ficheros de texto para guardar información
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Java
 
Java
JavaJava
Java
 
Serialización personalizada
Serialización personalizadaSerialización personalizada
Serialización personalizada
 
Un poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernesUn poco más allá con grails. PrimerViernes
Un poco más allá con grails. PrimerViernes
 
Serializacion
SerializacionSerializacion
Serializacion
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Serializacion de objetos
Serializacion de objetosSerializacion de objetos
Serializacion de objetos
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 

Más de Luis Lopez Ac

Tesis de finanzas maestria
Tesis de finanzas maestriaTesis de finanzas maestria
Tesis de finanzas maestriaLuis Lopez Ac
 
Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2Luis Lopez Ac
 
El lenguaje de programacion
El lenguaje de programacionEl lenguaje de programacion
El lenguaje de programacionLuis Lopez Ac
 
Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2Luis Lopez Ac
 
Garcia j et al 2000 aprenda java como si estuviera en primero
Garcia j et al 2000 aprenda java como si estuviera en primeroGarcia j et al 2000 aprenda java como si estuviera en primero
Garcia j et al 2000 aprenda java como si estuviera en primeroLuis Lopez Ac
 
Froufe a 2009 java 2 manual de usuario y tutorial
Froufe a 2009 java 2 manual de usuario y tutorialFroufe a 2009 java 2 manual de usuario y tutorial
Froufe a 2009 java 2 manual de usuario y tutorialLuis Lopez Ac
 
Hpe u3 a5 a la a7_lula
Hpe u3 a5 a la a7_lulaHpe u3 a5 a la a7_lula
Hpe u3 a5 a la a7_lulaLuis Lopez Ac
 
Act. 3. maximos_y_minimos_y_grafica_de_una_funcion
Act. 3. maximos_y_minimos_y_grafica_de_una_funcionAct. 3. maximos_y_minimos_y_grafica_de_una_funcion
Act. 3. maximos_y_minimos_y_grafica_de_una_funcionLuis Lopez Ac
 
Act. 2. razon_de_cambio_y_tangente_de_una_curva
Act. 2. razon_de_cambio_y_tangente_de_una_curvaAct. 2. razon_de_cambio_y_tangente_de_una_curva
Act. 2. razon_de_cambio_y_tangente_de_una_curvaLuis Lopez Ac
 
Mcdi u2 a3_lula.docx
Mcdi u2 a3_lula.docxMcdi u2 a3_lula.docx
Mcdi u2 a3_lula.docxLuis Lopez Ac
 
Act. 3. continuidad_de_funciones
Act. 3. continuidad_de_funcionesAct. 3. continuidad_de_funciones
Act. 3. continuidad_de_funcionesLuis Lopez Ac
 

Más de Luis Lopez Ac (20)

Tesis de finanzas maestria
Tesis de finanzas maestriaTesis de finanzas maestria
Tesis de finanzas maestria
 
Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2
 
El lenguaje de programacion
El lenguaje de programacionEl lenguaje de programacion
El lenguaje de programacion
 
Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2Martin a 2010 programador certificado java 2
Martin a 2010 programador certificado java 2
 
Garcia j et al 2000 aprenda java como si estuviera en primero
Garcia j et al 2000 aprenda java como si estuviera en primeroGarcia j et al 2000 aprenda java como si estuviera en primero
Garcia j et al 2000 aprenda java como si estuviera en primero
 
Froufe a 2009 java 2 manual de usuario y tutorial
Froufe a 2009 java 2 manual de usuario y tutorialFroufe a 2009 java 2 manual de usuario y tutorial
Froufe a 2009 java 2 manual de usuario y tutorial
 
Mdi u2 a5_lula
Mdi u2 a5_lulaMdi u2 a5_lula
Mdi u2 a5_lula
 
Hpe u3 ea_lula
Hpe u3 ea_lulaHpe u3 ea_lula
Hpe u3 ea_lula
 
Hpe u3 a5 a la a7_lula
Hpe u3 a5 a la a7_lulaHpe u3 a5 a la a7_lula
Hpe u3 a5 a la a7_lula
 
Hpe u3 a4_lula
Hpe u3 a4_lulaHpe u3 a4_lula
Hpe u3 a4_lula
 
Hpe u3 a2_lula
Hpe u3 a2_lulaHpe u3 a2_lula
Hpe u3 a2_lula
 
Fpr u2 a3_lula
Fpr u2 a3_lulaFpr u2 a3_lula
Fpr u2 a3_lula
 
Fpr u2 a2_lula
Fpr u2 a2_lulaFpr u2 a2_lula
Fpr u2 a2_lula
 
Mcdi u4 ea_lula
Mcdi u4 ea_lulaMcdi u4 ea_lula
Mcdi u4 ea_lula
 
Act. 3. maximos_y_minimos_y_grafica_de_una_funcion
Act. 3. maximos_y_minimos_y_grafica_de_una_funcionAct. 3. maximos_y_minimos_y_grafica_de_una_funcion
Act. 3. maximos_y_minimos_y_grafica_de_una_funcion
 
Act. 2. razon_de_cambio_y_tangente_de_una_curva
Act. 2. razon_de_cambio_y_tangente_de_una_curvaAct. 2. razon_de_cambio_y_tangente_de_una_curva
Act. 2. razon_de_cambio_y_tangente_de_una_curva
 
Mcdi u3 a3_lula
Mcdi u3 a3_lulaMcdi u3 a3_lula
Mcdi u3 a3_lula
 
Mcdi u3 a2_ lula
Mcdi u3 a2_ lulaMcdi u3 a2_ lula
Mcdi u3 a2_ lula
 
Mcdi u2 a3_lula.docx
Mcdi u2 a3_lula.docxMcdi u2 a3_lula.docx
Mcdi u2 a3_lula.docx
 
Act. 3. continuidad_de_funciones
Act. 3. continuidad_de_funcionesAct. 3. continuidad_de_funciones
Act. 3. continuidad_de_funciones
 

Último

Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaSebastianQP1
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasLeonardoMendozaDvila
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...esandoval7
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 

Último (20)

Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Tarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieriaTarea de UTP matematices y soluciones ingenieria
Tarea de UTP matematices y soluciones ingenieria
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...Simbología de Soldadura,  interpretacion y aplicacion en dibujo tecnico indus...
Simbología de Soldadura, interpretacion y aplicacion en dibujo tecnico indus...
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 

Suarez l 2001 el paquete java io

  • 1. El paquete java.io. Manejo de las I/O. Leo Suarez leo@javahispano.com http://www.javahispano.com Julio 2001
  • 2. Leo Suarez http://www.javahispano.com 10 BufferedOutputStream (OutputStream in); BufferedOutputStream (OuputStream in, int bufSize); Combinación de las clases. A continuación veremos una serie de ejemplos que combinan las clases que tratan directamente sobre los flujos de entrada o de salida con las clases que las envuelven. Ejemplo 4. Lectura de datos crudos (raw data). /* En este ejemplo leemos un fichero que contiene un flujo de bytes que representa una imagen 2D de tamaño 128x128. Cada pixel viene codificado por 2 bytes que indican el nivel de gris de dicho pixel. Así mismo, escribimos en el fichero salida.txt los niveles de grises con un "formato" de array 2D. Este programa lee de manera correcta cualquier short, aunque exceda de 32767. */ import java.io.*; class RawData { final static int WIDTH = 128; final static int HEIGHT = 128; public static void main (String args[]) { InputStream in = null; DataInputStream dis = null; FileOutputStream fout = null; PrintStream miSalida = null; int shortLeido = 0; try { in = new FileInputStream("Rana_128.035");//Leemos un stream de bytes dis = new DataInputStream(in);//Envolvemos la clase de entrada (in) para acceder a las funcionalidades de DataInput fout = new FileOutputStream("salida.txt"); miSalida = new PrintStream(fout);//convertimos a PrintStream } catch(IOException e) { System.out.println("Error al abrir el fichero"); System.exit(0); } catch (Exception e) { System.out.println(e.getMessage()); System.exit(0); } int contX =0, contY=0; for (contX = 0; contX < HEIGHT; contX++) { miSalida.print("n"); for (contY = 0; contY < WIDTH; contY++) { try { shortLeido = dis.readUnsignedShort();//Al leer short sin signo podemos tratar datos hasta 65535. miSalida.print("[ " + shortLeido + " ] "); }
  • 3. El paquete java.io Manejo de las I/O 11 catch(IOException e) { System.out.println("Se leyó todo el fichero " + e); } catch (Exception e) { System.out.println("excepción desconocida: " + e); System.exit(0); } } } // fin for exterior try { in.close(); fout.close(); } catch (IOException ioe) {System.out.println("No se pudo cerrar alguno de los ficheros");} } // end main } //Fin RawData Ejemplo 5. Lectura a través de la red. Carga de un fichero desde un applet. /* En este ejemplo cargamos un fichero a través de la red. Este ejemplo es la manera que se suele emplear para cargar un fichero. Como nuestra intención es leer una ristra de caracteres hacemos un "wrapping" tal y como explicamos. */ /* <applet code = ReadFromApplet.class width = 400 height = 400> </applet> */ import java.applet.Applet; import java.io.InputStream; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.net.URL; import java.net.MalformedURLException; public class ReadFromApplet extends Applet { URL url; InputStream in; BufferedReader br; public void init() { try { url = new URL(this.getCodeBase() + "Propiedades.java"); } catch (MalformedURLException mue) {System.out.println(mue.getMessage());} try { in = url.openStream();//abre un flujo de bytes //hacemos el wrapping de la clase orientada a byte para leer caracteres br = new BufferedReader(new InputStreamReader(in)); String linea;
  • 4. Leo Suarez http://www.javahispano.com 12 while ((linea = br.readLine()) != null) { System.out.println(linea); } br.close(); } catch (IOException ioe) {System.out.println(ioe.getMessage());} } } Las clases orientadas a flujo de caracteres ( Character Stream). Aunque las clases orientadas al flujo de bytes nos proporcionan la suficiente funcionalidad para realizar cualquier tipo de operación de entrada o salida, éstas no pueden trabajar directamente con caracteres Unicode. Es por ello que fue necesario la creación de las clases orientadas al flujo de caracteres para ofrecernos el soporte necesario para el tratamiento de caracteres. Como ya dijimos al principio, estas clases nacen de las clases abstractas Readery Writer. Las clases concretas derivadas de ellas tienen su homónimo en las clases concretas derivadas de InputStream y OutputStream, por tanto, la explicación hecha para todas ellas tiene validez para las orientadas a caracter salvo quizás algunos matices que podrás completar con las especificaciones por lo que omitiremos la explicación detallada de cada una de ellas. No obstante, os daré una relación de las clases más importantes. Son las siguientes: 1. Acceso a fichero: FileReader y FileWriter. 2. Acceso a caracter: CharArrayReader y CharArrayWriter. 3. Buferización de datos: BufferedReader y BufferedWriter. Serialización. La serialización es el proceso de escribir el estado de un objeto a un flujo de bytes. La utilidad de esta operación se manifiesta cuando queremos salvar el estado de nuestro programa en un sitio de almacenamiento permanente o, en otras palabras, cuando queremos hacer la persistencia de nuestro programa. Así, en un momento posterior dado podemos recuperar estos objetos deserializándolos. Otra de las situaciones en las que necesitamos recurrir a la serialización es cuando hacemos una implementación RMI. La Invocación de Métodos Remotos consiste en que un objeto Java de una máquina pueda llamar a un método de un objeto Java que está en otra máquina diferente. Entonces, la máquina que lo invoca serializa el objeto y lo transmite mientras que la máquina receptora lo deserializa. Dado que cuando un objeto se serializa, éste puede tener referencias a otros objetos que a la vez lo tendrán a otros, los métodos para la serialización y deserialización de objetos contemplan esta posibilidad. Así, cuando serializamos un objeto que está en la cima del grafo de objetos, todos los objetos a los que se hace referencia son también serializados. El proceso inverso de recuperación de objetos hará justo lo contrario.