SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Republica Bolivariana De Venezuela
Instituto Universitario Politécnico “Santiago Mariño”
Extensión Porlamar
Realizado Por:
María F. Suarez Salazar
C.I 20.905.333
INTRODUCCIÓN
Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la
cual fue adquirida por la compañía Oracle) y publicado en el 1995 como un componente
fundamental de la plataforma Java de Sun Microsystems.
Java es una de los lenguajes de programación mas utilizado actualmente ya que
satisface y se adapta a las necesidades del usuario; es una de las herramientas más
utilizadas en el mundo informático.
Este fue creado con el propósito de ser un lenguaje de programación de propósito
general, concurrente, orientado a objetos y basado en clases que fue diseñado
específicamente para tener tan pocas dependencias de implementación como fuera posible.
ENTRADA Y SALIDA DE DATOS EN JAVA
Según Gabriel Sánchez [documento en línea] se entiende como:
La E/S básica por terminal con formato se lleva a cabo
mediante readLine y println. La entrada estándar es System.in y la salida estándar
es System.out
El mecanismo básico para E/S con formato utiliza el tipo String. En la salida +
combina dos valores de tipo String. Si el segundo argumento no es un valor de tipo String,
se crea un valor temporal de tipo String para él, siempre que sea de tipo primitivo. Estas
conversiones al tipo String se pueden definir también para objetos.
Un modo sencillo de realizar una lectura de la entrada es leer una sola línea
almacenándola en un objeto de tipo String, para lo que se emplea readLine. Este método lee
hasta que encuentra un final de línea o el final del fichero. Los caracteres leídos salvo el
final de Línea (en el caso de que se encuentre), se devuelven como un nuevo String.
ParareadLine, se debe construir un objeto BufferedReader sobre un
objetoInputStreamReader que a su vez se crea a partir de System.in
Ejemplo:
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
String nombre;
System.out.println("Introduzca un nombre:");
nombre=in.readLine();
CLASES PARA LECTURA Y ESCRITURA EN JAVA
Según Ángel Franco García [documento en línea]:
Lectura
Las clases Reader e InputStream son similares aunque se refieren a distintos tipos
de datos, lo mismo ocurre con Writer y OutputSream. La clase reader tiene métodos que
nos permiten leer caracteres. Sin embargo, suele ser habitual querer las líneas completas,
bien porque nos interesa la línea completa, bien para poder analizarla luego y extraer
campos de ella. FileReader no contiene métodos que nos permitan leer líneas completas,
pero sí BufferedReader. Afortunadamente, podemos construir un BufferedReader a partir
del FileReader de la siguiente forma:
Por ejemplo, Reader proporciona tres métodos para leer un carácter char o un array
de caracteres
int read()
int read(char buf[])
int read(char buf[], int offset, int len)
InputStream proporciona métodos similares para leer un byte o un array de bytes.
int read()
int read(byte buf[])
int read(byte buf[], int offset, int len)
La primera versión lee un byte como entero del flujo de entrada, devuelve –1 si no
hay más datos que leer. La segunda versión, lee un array de bytes devolviendo el número de
bytes leídos. La tercera versión, lee también, un array de bytes, pero nos permite
especificar, la posición de comienzo del array en la que se empiezan a guardar los bytes, y
el máximo número de bytes que se van a leer.
Dichas clases definen otras funciones miembro que no estudiaremos de momento.
Escritura
La clase Writer proporciona tres métodos para escribir un carácter char o un array
de caracteres
int write(int c)
int write(char buf[])
int write(char buf[], int offset, int len)
La clase OutputStream proporciona métodos similares
int write(int c)
int write(byte buf[])
int write(byte buf[], int offset, int len)
ENTRADA Y SALIDA ESTÁNDAR (TECLADO Y PANTALLA)
Según Ángel Franco García [documento en línea]:
La entrada/salida estándar (normalmente el teclado y la pantalla, respectivamente)
se definen mediante dos objetos que puede usar el programador sin tener que crear flujos
específicos.
La clase System tiene un miembro dato denominado in que es una instancia de la
clase InputStream que representa al teclado o flujo de entrada estándar. Sin embrago, el
miembro out de la claseSystem es un objeto de la clase PrintStream, que imprime texto en
la pantalla (la salida estándar).
Para leer un carácter solamente tenemos que llamar a la
función read desde System.in.
try{
System.in.read();
}catch (IOException ex) { }
Obligatoriamente, el proceso de lectura ha de estar en un bloque try..catch.
Esta porción de código es la que se ha empleado en muchas aplicaciones para
detener la ejecución de una aplicación hasta que se pulse la tecla RETORNO.
Para leer un conjunto de caracteres hasta que se pulse la tecla RETORNO
escribimos
StringBuffer str=new StringBuffer();
char c;
try{
while ((c=(char)System.in.read())!='n'){
str.append(c);
}
}catch(IOException ex){}
La clase StringBuffer es una clase que nos permite crear strings. Contiene métodos
para añadir nuevos caracteres a un buffer y convertir el resultado final en un string. Las
principales funciones miembro son insert y append. Usamos una versión de esta última
función para añadir un carácter al final de un objeto de la clase StringBuffer.
Para convertir un objeto str de la clase StringBuffer a String se usa la función
miembro toString. Esta llamada se hace de forma implícita cuando dicho objeto se le pasa
a System.out.println.
System.out.println(str);
Finalmente, se ha de hacer notar, que la función read miembro
de InputStream devuelve un int que es promocionado a char.
SERIALIZACION
Para aclarar este concepto, aquí se da una definición formal del concepto de
serialización de datos. “La serialización de datos es el proceso en el que se toman objetos y
se convierte su información de estado en un formato que permita su transporte o su
almacenamiento. La acción inversa consiste en deshacer la serialización y dejar el objeto
con la misma forma que tenía inicialmente”. Dicho de una manera más simple, la
serialización consiste en transformar datos que tienen una forma, a otra forma, pero
manteniendo su significado.
La necesidad de incluir en este proyecto la “serialización de datos” se pone de
manifiesto cuando se intenta enviar al servicio web la información necesaria para calcular
las diferencias entre las imágenes.
Desde el inicio del proyecto, se tratan las imágenes como una array bidimensional,
en el que cada posición contiene un número de entre 0 y 255. Por otro lado, la función que
calcula los cambios entre las dos imágenes de entrada, necesita como parámetros de
entrada, entre otros, las dos imágenes.
Entre los tipos de datos que se le pueden pasar a los métodos de servicios web y los
tipos de datos que devuelven se encuentran: los tipos de datos primitivos y arrays
unidimensionales de tipos primitivos, entre otros. Como se puede observar, en ningún caso
se contempla los arrays de dos dimensiones.
Por esta razón, se ha desarrollado una función que transforma
el array de double bidimensional en un array unidimensional del tipo primitivo String . De
esta manera se puede enviar sin ningún problema la imagen como un array unidimensional
de tipo String. Cuando las imágenes llegan al método del servicio web, se deshace la
serialización y se puede trabajar con la imagen en formato array bidimensional.
JAVA FOUNDATION CLASSES
Las clases Java fundamentales (JFC) son un conjunto integral de servicios y
componentes GUI que simplifican enormemente el desarrollo y despliegue de aplicaciones
de escritorio de calidad comercial y de Internet / Intranet.
Las Java Foundation Classes (JFC, en castellano Clases Base Java) son un
framework gráfico para construir interfaces gráficas de usuario portables basadas en Java.
JFC se compone de Abstract Window Toolkit (AWT), Swing y Java 2D. Juntas,
suministran una interfaz de usuario consistente para programas Java, tanto si el sistema de
interfaz de usuario subyacente es Windows, Mac OS X o Linux.
AWT es la más antigua de las dos APIs de interfaz, y fue criticada duramente por
ser poco más que una envoltura alrededor de las capacidades gráficas nativas de la
plataforma anfitrión. Esto significa que los widgets estándar en la AWT confían en esas
capacidades de los widgets nativos, requiriendo que el desarrollador también este prevenido
de las diferencias entre plataformas anfitrión.
Una API de gráficos alternativa llamada Internet Foundation Classes fue
desarrollada en código más independiente de la plataforma por Netscape. Últimamente, Sun
mezcló la IFC con otras tecnologías bajo el nombre "Swing", añadiendo la capacidad para
un look and feel enchufable de los widgets. Esto permite a los programas Swing mantener
la base del código independiente de la plataforma, pero imita el look de la aplicación
nativa.
JAVA 2D
Con Java 2D, los desarrolladores pueden hacer, manipular y transformar las
imágenes 2D complejas y texto. Java 2D permite la creación de los componentes más ricos
de futuro y sus aplicaciones.
En computación, Java 2D es un API para dibujar gráficos en dos dimensiones
usando el lenguaje de programación Java. Cada operación de dibujo Java 2D puede tratarse
como rellenar una forma usando un pincel y componiendo el resultado en la pantalla.
Estos objetos son parte necesaria de cada operación de dibujo Java 2D.
Formas
Una forma en Java 2D es un límite infinitamente delgado el cual define un interior y
un exterior. Los Píxeles internos de la forma están afectados por la operación de dibujo, los
que están fuera no.
Intentar rellenar un segmento de línea recto extremadamente fino resultará en que
no habrán píxeles afectados, por lo tanto una forma no contiene píxeles. En su lugar, un
rectángulo fino se debe usar para que la forma contenga algunos píxeles.
Pinceles
Un pincel genera los colores que serán usados para cada píxel de la operación de
relleno. El pincel más simple es java.awt.Color, el cual genera el mismo color para todos
los píxeles. Pinceles más complicados pueden producir gradientes, imágenes, o cualquier
combinación de colores. Rellenar una forma circular usando el color amarillo resulta en un
círculo sólido amarillo, mientras rellenar la misma forma circular usando un pincel que
genera una imagen produce un recorte circular de la imagen.
Compuestos
Durante cualquier operación de dibujo, hay una fuente (los píxeles que son
producidos por el pincel) y un destino (los píxeles ya en la pantalla). Normalmente, los
píxeles fuente simplemente sobrescriben los píxeles de destino, pero el compuesto permite
modificar este comportamiento.
El compuesto, dados los píxeles fuente y destino, produce el resultado final que por
último aparece en la pantalla. El compuesto más común esjava.awt.AlphaComposite, el
cual trata los píxeles que están siendo dibujados como parcialmente transparentes, para que
los píxeles destino se muestren en algún grado.
Rellenado
Para rellenar una forma, el primer paso es identificar que píxeles caen dentro de la
forma. Estos píxeles serán afectados por la operación de relleno. Los píxeles que están
parcialmente dentro y parcialmente fuera de la forma pueden ser afectados en menor grado
si está activado el Anti-aliasing.
El pincel es requerido para generar un color de cada uno de los píxeles que se van a
pintar. En el caso común del relleno de un color sólido, cada píxel será asignado al mismo
color.
El compuesto toma los píxeles generados por el pincel y los combina con los píxeles
que ya están en la pantalla para producir el resultado final.
Java Media Framework
Es una extensión de Java que permite la programación de tareas multimedia en este
lenguaje. Permite a audio, vídeo y otros medios basados en el tiempo que se añaden a las
aplicaciones y applets incorporados en la tecnología Java. Este paquete opcional, que puede
capturar, reproducir, arroyo, y convierte múltiples formatos de medios, se extiende la
plataforma Java 2, Standard Edition (J2SE) para los desarrolladores multimedia,
proporcionando un poderoso conjunto de herramientas para el desarrollo, la tecnología
multi-plataforma escalable.
Sus principales características son:
 Estabilidad debida a que funciona sobre la máquina virtual java (JVM).
 Sencillez, ya que permite, usando unos pocos comandos, realizar complejas tareas
multimedia.
 Potencia, permitiendo la manipulación de elementos multimedia de vídeo y audio
locales (procedentes de la misma máquina en la que se ejecuta el programa), así como
la retransmisión en tiempo real de vídeo y audio a través de la red mediante el
protocolo RTP.
JAVA 3D
Según Ricard Lou Torrijos [documento en línea] se entiende como:
El API Java 3D es un interface para escribir programas que muestran e interactúan
con gráficos tridimensionales. Java 3D es una extensión estándar del JDK 2 de Java. El API
Java 3D proporciona una colección de constructores de alto-nivel para crear y manipular
geometrías 3D y estructuras para dibujar esta geometría. Java 3D proporciona las funciones
para creación de imágenes, visualizaciones, animaciones y programas de aplicaciones
gráficas 3D interactivas.
El API 3D de Java es un árbol de clases Java que sirven como interface para
sistemas de renderizado de gráficos tridimensionales y un sistema de sonido. El
programador trabaja con constructores de alto nivel para crear y manipular objetos
geométricos en 3D. Estos objetos geométricos residen en un universo virtual, que luego es
rende rizado. El API está diseñado con flexibilidad para crear universos virtuales precisos
de una amplia variedad de tamaños, desde astronómicos a subatómicos.
A pesar de toda esta funcionalidad, el API es sencillo de usar. Los detalles de
renderizado se manejan automáticamente. Aprovechándose de los Threads Java, el
renderizador Java 3D es capaz de renderizar en paralelo. El renderizador también puede
optimizarse automáticamente para mejorar el rendimiento del renderizado.
Un programa Java 3D crea ejemplares de objetos Java 3D y los sitúa en un
estructura de datos de escenario gráfico. Este escenario gráfico es una composición de
objetos 3D en una estructura de árbol que especifica completamente el contenido de un
universo virtual, y cómo va a ser renderizado.
Los programas Java 3D pueden escribirse para ser ejecutados como aplicaciones solitarias o
como applets en navegadores que hayan sido extendidos para soportar Java 3D, o ámbos.
JAVA BEANS
Según Ángel Franco García [documento en línea]:
Un JavaBean o bean es un componente hecho en software que se puede reutilizar y
que puede ser manipulado visualmente por una herramienta de programación en lenguaje
Java.
Para ello, se define un interfaz para el momento del diseño (design time) que
permite a la herramienta de programación o IDE, interrogar (query) al componente y
conocer las propiedades (properties) que define y los tipos de sucesos (events) que puede
generar en respuesta a diversas acciones.
Aunque los beans individuales pueden variar ampliamente en funcionalidad desde los
más simples a los más complejos, todos ellos comparten las siguientes características:
 Introspection: Permite analizar a la herramienta de programación o IDE como
trabaja el bean
 Customization: El programador puede alterar la apariencia y la conducta del bean.
 Events: Informa al IDE de los sucesos que puede generar en respuesta a las acciones
del usuario o del sistema, y también los sucesos que puede manejar.
 Properties: Permite cambiar los valores de las propiedades del bean para
personalizarlo (customization).
 Persistence: Se puede guardar el estado de los beans que han sido personalizados
por el programador, cambiando los valores de sus propiedades.
En general, un bean es una clase que obedece ciertas reglas:
 Un bean tiene que tener un constructor por defecto (sin argumentos)
 Un bean tiene que tener persistencia, es decir, implementar el interface Serializable.
 Un bean tiene que tener introspección (instrospection). Los IDE reconocen ciertas
pautas de diseño, nombres de las funciones miembros o métodos y definiciones de
las clases, que permiten a la herramienta de programación mirar dentro del bean y
conocer sus propiedades y su conducta.
RMI
RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para
invocar un método de manera remota. Forma parte del entorno estándar de ejecución de
Java y proporciona un mecanismo simple para la comunicación de servidores en
aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicación
entre otras tecnologías debe utilizarse CORBA o SOAP en lugar de RMI.
RMI se caracteriza por la facilidad de su uso en la programación por estar
específicamente diseñado para Java; proporciona paso de objetos por referencia (no
permitido por SOAP), recolección de basura distribuida (Garbage Collector distribuido) y
paso de tipos arbitrarios (funcionalidad no provista por CORBA).
A través de RMI, un programa Java puede exportar un objeto, con lo que dicho
objeto estará accesible a través de la red y el programa permanece a la espera de peticiones
en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los
métodos proporcionados por el objeto.
JAVA IDL
Según Ricard Lou Torrijos [documento en línea]:
Java IDL es una tecnología para objetos distribuidos -- es decir, objetos
interactuando sobre diferentes plataformas a través de una red. Java IDL es similar a RMI
(Remote Method Invocation), que soporta objetos distribuidos escritos enteramente en Java.
Sin embargo, Java IDL permite intractuar a los objetos sin importar si están escritos en Java
o en cualquier otro lenguaje como C, C++, COBOL, etc.
Esto es posible porque Java IDL está basado en "Common Object Request
Brokerage Architecture" (CORBA), un modelo industrial estandard para objetos
distribuidos. La característica principal de CORBA es IDL, (Interface Definition
Language). Caa lenguaje que soporte CORBA tiene su propio mapeo IDL -- y como su
nombre implica, Java IDL soporta el mapeo para Java. CORBA y los mapeos IDL son el
trabajo de un consorcio industrial conocido como OMG (Object Management Group). Sun
es un miembro fundacional del OMG, y el equipo Jva IDL ha jugao un papel activo en la
definición del mapeo IDL-a-Java.
Para soportar la interacción entre objetos de programas separados, Java IDL
proporciona un Object Request Broker, o ORB. El ORB es una librería de clases que
permite una comunicación de bajo nivel entre aplicaciones Java IDL y aplicaciones
compatibles con CORBA. Esto está empezando a parecer una sopa de letras, no te
preocipes, los detalles sobre CORBA, IDL y ORB vienen en la próxima página.
Esta sección camina a través del diseño y desarrollo de una sencilla pareja de aplicaciones
Java IDL que interactuan. Empiza mostrando la arquitectura general de CORBA, luego
continúa con una introducción a los pasos para construir aplicaciones CORBA en Java IDL.
Finalmente, realiza cada paso para producir un cliente y un servidor que interactuan usando
CORBA.
JAVA NATIVE INTERFACE
Java Native Interface (JNI) es un framework de programación que permite que un
programa escrito en Java ejecutado en la máquina virtual java (JVM) pueda interactuar con
programas escritos en otros lenguajes como C, C++ y ensamblador.
El JNI se usa para escribir métodos nativos que permitan solventar situaciones en
las que una aplicación no puede ser enteramente escrita en Java, como por ejemplo en el
caso de que la biblioteca estándar de clases no proporcione soporte para funcionalidades
dependientes de la plataforma.
También se usa para modificar programas existentes escritos en algún otro lenguaje,
permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las clases de la API
estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al
usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de ficheros. El
desarrollador debe asegurarse que la API estándar de Java no proporciona una determinada
funcionalidad antes de recurrir al JNI, ya que la primera ofrece una implementación segura
e independiente de la plataforma.
El framework JNI permite a un método nativo utilizar los objetos Java de la misma
forma en que el propio código de Java lo hace. Un método nativo puede crear objetos Java;
y examinarlos y utilizarlos para que lleven a cabo su función. Un método nativo puede
asimismo examinar y utilizar objetos que han sido creados por código de aplicación escrito
en Java.
A menudo se denomina a JNI como la "válvula de escape" para desarrolladores
dado que les permite añadir funcionalidades a sus aplicaciones que el API de Java no puede
proporcionar.
Dado que -como se ha dicho antes- puede ser usado para interactuar con código
escrito en otros lenguajes como C++, también se usa para operaciones y cálculos de alta
complejidad temporal, porque el código nativo es por lo general más rápido que el que se
ejecuta en una máquina virtual.
CONCLUSIÓN
Java es una tecnología que se usa para el desarrollo de aplicaciones que
convierten a la Web en un elemento más interesante y útil. Este lenguaje de
programación a evolucionado a través de los los convirtiendo en uno de los más
completos en la actualidad.
Su intención es permitir que los desarrolladores de aplicaciones escriban el
programa una vez y lo ejecuten en cualquier dispositivo lo que quiere decir que
el código que es ejecutado en una plataforma no tiene que ser recompilado para correr
en otra. Gracias a estas y otras ventajas Java se conviertioa partir del 2012, uno de los
lenguajes de programación más populares en uso, particularmente para aplicaciones
de cliente-servidor de web, con unos 10 millones de usuarios reportados.
REFERENCIAS
Ricard Lou Torrijos [documento en línea] disponible en:
http://www.programacion.com/articulo/java_idl_86 (Consultado el 28.06.13)
Ángel Franco García Torrijos [DOCUMENTO EN LINEA] DISPONIBLE EN:
http://www.sc.ehu.es/sbweb/fisica/cursojava/applets/javabeans/fundamento.htm
(Consultado el 28.06.13)
Ricard Lou Torrijos Torrijos [documento en línea] disponible en:
http://www.programacion.com/articulo/java_3d_169 (Consultado el 28.06.13)
Documento S/A [documento en línea] disponible en:
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html (Consultado el
28.06.13)
Documento S/A [Documento en línea] disponible en:
http://www.oracle.com/technetwork/java/faqs-140150.html (Consultado el 28.06.13)
Documento S/A [Documento en línea] disponible en:
http://147.96.80.209/SI_G2_04_05/src/proyecto/Serializacion.htm (Consultado el 28.06.13)
Ángel franco García [Documento en línea] disponible en:
http://www.sc.ehu.es/sbweb/fisica/cursojava/fundamentos/archivos/flujos.htm (Consultado
el 28.06.13)
Ángel franco García[Documento en línea] disponible en:
http://www.sc.ehu.es/sbweb/fisica/cursojava/fundamentos/archivos/teclado.htm
(Consultado el 28.06.13)
Entrada y salida de datos en java

Weitere ähnliche Inhalte

Was ist angesagt? (18)

Java
JavaJava
Java
 
3. tipos de programas java
3. tipos de programas java3. tipos de programas java
3. tipos de programas java
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
Ppt java
Ppt javaPpt java
Ppt java
 
Api java
Api javaApi java
Api java
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y librerias
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Grupo1
Grupo1Grupo1
Grupo1
 
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
 
ARCHIVOS
ARCHIVOS ARCHIVOS
ARCHIVOS
 
Apendice general 4 terminos de programador
Apendice general 4 terminos de programadorApendice general 4 terminos de programador
Apendice general 4 terminos de programador
 
Programación en Java (I)
Programación en Java (I) Programación en Java (I)
Programación en Java (I)
 
Glosario
GlosarioGlosario
Glosario
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Programacinenshell linux
Programacinenshell linuxProgramacinenshell linux
Programacinenshell linux
 
Clase 4 JAVA 2012
Clase 4 JAVA 2012Clase 4 JAVA 2012
Clase 4 JAVA 2012
 
Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]
 
Comandos java
Comandos javaComandos java
Comandos java
 

Andere mochten auch

Andere mochten auch (20)

Umdesafiode dios
Umdesafiode diosUmdesafiode dios
Umdesafiode dios
 
Español 2 pymes mauricio valverde
Español 2 pymes mauricio valverdeEspañol 2 pymes mauricio valverde
Español 2 pymes mauricio valverde
 
Mendoza tierras de pleceres
Mendoza  tierras de pleceresMendoza  tierras de pleceres
Mendoza tierras de pleceres
 
2
22
2
 
Reglamento aprendiz 2012 acuerdo 0007 de 2012 (2)
Reglamento aprendiz  2012 acuerdo 0007 de 2012 (2)Reglamento aprendiz  2012 acuerdo 0007 de 2012 (2)
Reglamento aprendiz 2012 acuerdo 0007 de 2012 (2)
 
Sac m4
Sac m4Sac m4
Sac m4
 
Comenzar20
Comenzar20Comenzar20
Comenzar20
 
El callao y sus manifestaciones culturales
El callao y sus manifestaciones culturalesEl callao y sus manifestaciones culturales
El callao y sus manifestaciones culturales
 
Proyecto 1 responsabilidad social 3
Proyecto 1 responsabilidad social 3Proyecto 1 responsabilidad social 3
Proyecto 1 responsabilidad social 3
 
Diapositiva d informatica
Diapositiva d informaticaDiapositiva d informatica
Diapositiva d informatica
 
áCido nucleico
áCido nucleicoáCido nucleico
áCido nucleico
 
Jmb m4 u1_portafolio proyecto
Jmb m4 u1_portafolio proyectoJmb m4 u1_portafolio proyecto
Jmb m4 u1_portafolio proyecto
 
Equipo # 4 articulos y acuerdos
Equipo # 4 articulos y acuerdosEquipo # 4 articulos y acuerdos
Equipo # 4 articulos y acuerdos
 
Lahidrosfera 090412205641-phpapp02
Lahidrosfera 090412205641-phpapp02Lahidrosfera 090412205641-phpapp02
Lahidrosfera 090412205641-phpapp02
 
Ley 1273 del 2009
Ley 1273 del 2009Ley 1273 del 2009
Ley 1273 del 2009
 
Portafolio de Evidencias
Portafolio de EvidenciasPortafolio de Evidencias
Portafolio de Evidencias
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Revista de literatura
Revista de literaturaRevista de literatura
Revista de literatura
 
Actividad semana 2
Actividad semana 2Actividad semana 2
Actividad semana 2
 
Alfabeto y término psicopedagógicos
Alfabeto y término psicopedagógicosAlfabeto y término psicopedagógicos
Alfabeto y término psicopedagógicos
 

Ähnlich wie Entrada y salida de datos en java

Ähnlich wie Entrada y salida de datos en java (20)

Presentacion carlos
Presentacion carlosPresentacion carlos
Presentacion carlos
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
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
 
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
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica ii
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gil
 
Fun consola guia_01
Fun consola guia_01Fun consola guia_01
Fun consola guia_01
 
No numerica ii
No numerica iiNo numerica ii
No numerica ii
 
Java
JavaJava
Java
 
Clase 4 java 2011
Clase 4 java 2011Clase 4 java 2011
Clase 4 java 2011
 
Portafoliojava
PortafoliojavaPortafoliojava
Portafoliojava
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 
Portafoliojava
PortafoliojavaPortafoliojava
Portafoliojava
 
Presentación aplicaciones en java.
Presentación aplicaciones en java.Presentación aplicaciones en java.
Presentación aplicaciones en java.
 
Glosario Términos De JAVA
Glosario Términos De JAVAGlosario Términos De JAVA
Glosario Términos De JAVA
 
Glosario
GlosarioGlosario
Glosario
 

Entrada y salida de datos en java

  • 1. Republica Bolivariana De Venezuela Instituto Universitario Politécnico “Santiago Mariño” Extensión Porlamar Realizado Por: María F. Suarez Salazar C.I 20.905.333
  • 2. INTRODUCCIÓN Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en el 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Java es una de los lenguajes de programación mas utilizado actualmente ya que satisface y se adapta a las necesidades del usuario; es una de las herramientas más utilizadas en el mundo informático. Este fue creado con el propósito de ser un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible.
  • 3. ENTRADA Y SALIDA DE DATOS EN JAVA Según Gabriel Sánchez [documento en línea] se entiende como: La E/S básica por terminal con formato se lleva a cabo mediante readLine y println. La entrada estándar es System.in y la salida estándar es System.out El mecanismo básico para E/S con formato utiliza el tipo String. En la salida + combina dos valores de tipo String. Si el segundo argumento no es un valor de tipo String, se crea un valor temporal de tipo String para él, siempre que sea de tipo primitivo. Estas conversiones al tipo String se pueden definir también para objetos. Un modo sencillo de realizar una lectura de la entrada es leer una sola línea almacenándola en un objeto de tipo String, para lo que se emplea readLine. Este método lee hasta que encuentra un final de línea o el final del fichero. Los caracteres leídos salvo el final de Línea (en el caso de que se encuentre), se devuelven como un nuevo String. ParareadLine, se debe construir un objeto BufferedReader sobre un objetoInputStreamReader que a su vez se crea a partir de System.in Ejemplo: BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); String nombre; System.out.println("Introduzca un nombre:"); nombre=in.readLine();
  • 4. CLASES PARA LECTURA Y ESCRITURA EN JAVA Según Ángel Franco García [documento en línea]: Lectura Las clases Reader e InputStream son similares aunque se refieren a distintos tipos de datos, lo mismo ocurre con Writer y OutputSream. La clase reader tiene métodos que nos permiten leer caracteres. Sin embargo, suele ser habitual querer las líneas completas, bien porque nos interesa la línea completa, bien para poder analizarla luego y extraer campos de ella. FileReader no contiene métodos que nos permitan leer líneas completas, pero sí BufferedReader. Afortunadamente, podemos construir un BufferedReader a partir del FileReader de la siguiente forma: Por ejemplo, Reader proporciona tres métodos para leer un carácter char o un array de caracteres int read() int read(char buf[]) int read(char buf[], int offset, int len) InputStream proporciona métodos similares para leer un byte o un array de bytes. int read() int read(byte buf[]) int read(byte buf[], int offset, int len) La primera versión lee un byte como entero del flujo de entrada, devuelve –1 si no hay más datos que leer. La segunda versión, lee un array de bytes devolviendo el número de bytes leídos. La tercera versión, lee también, un array de bytes, pero nos permite especificar, la posición de comienzo del array en la que se empiezan a guardar los bytes, y el máximo número de bytes que se van a leer.
  • 5. Dichas clases definen otras funciones miembro que no estudiaremos de momento. Escritura La clase Writer proporciona tres métodos para escribir un carácter char o un array de caracteres int write(int c) int write(char buf[]) int write(char buf[], int offset, int len) La clase OutputStream proporciona métodos similares int write(int c) int write(byte buf[]) int write(byte buf[], int offset, int len) ENTRADA Y SALIDA ESTÁNDAR (TECLADO Y PANTALLA) Según Ángel Franco García [documento en línea]: La entrada/salida estándar (normalmente el teclado y la pantalla, respectivamente) se definen mediante dos objetos que puede usar el programador sin tener que crear flujos específicos. La clase System tiene un miembro dato denominado in que es una instancia de la clase InputStream que representa al teclado o flujo de entrada estándar. Sin embrago, el miembro out de la claseSystem es un objeto de la clase PrintStream, que imprime texto en la pantalla (la salida estándar). Para leer un carácter solamente tenemos que llamar a la función read desde System.in. try{
  • 6. System.in.read(); }catch (IOException ex) { } Obligatoriamente, el proceso de lectura ha de estar en un bloque try..catch. Esta porción de código es la que se ha empleado en muchas aplicaciones para detener la ejecución de una aplicación hasta que se pulse la tecla RETORNO. Para leer un conjunto de caracteres hasta que se pulse la tecla RETORNO escribimos StringBuffer str=new StringBuffer(); char c; try{ while ((c=(char)System.in.read())!='n'){ str.append(c); } }catch(IOException ex){} La clase StringBuffer es una clase que nos permite crear strings. Contiene métodos para añadir nuevos caracteres a un buffer y convertir el resultado final en un string. Las principales funciones miembro son insert y append. Usamos una versión de esta última función para añadir un carácter al final de un objeto de la clase StringBuffer. Para convertir un objeto str de la clase StringBuffer a String se usa la función miembro toString. Esta llamada se hace de forma implícita cuando dicho objeto se le pasa a System.out.println. System.out.println(str); Finalmente, se ha de hacer notar, que la función read miembro de InputStream devuelve un int que es promocionado a char.
  • 7. SERIALIZACION Para aclarar este concepto, aquí se da una definición formal del concepto de serialización de datos. “La serialización de datos es el proceso en el que se toman objetos y se convierte su información de estado en un formato que permita su transporte o su almacenamiento. La acción inversa consiste en deshacer la serialización y dejar el objeto con la misma forma que tenía inicialmente”. Dicho de una manera más simple, la serialización consiste en transformar datos que tienen una forma, a otra forma, pero manteniendo su significado. La necesidad de incluir en este proyecto la “serialización de datos” se pone de manifiesto cuando se intenta enviar al servicio web la información necesaria para calcular las diferencias entre las imágenes. Desde el inicio del proyecto, se tratan las imágenes como una array bidimensional, en el que cada posición contiene un número de entre 0 y 255. Por otro lado, la función que calcula los cambios entre las dos imágenes de entrada, necesita como parámetros de entrada, entre otros, las dos imágenes. Entre los tipos de datos que se le pueden pasar a los métodos de servicios web y los tipos de datos que devuelven se encuentran: los tipos de datos primitivos y arrays unidimensionales de tipos primitivos, entre otros. Como se puede observar, en ningún caso se contempla los arrays de dos dimensiones. Por esta razón, se ha desarrollado una función que transforma el array de double bidimensional en un array unidimensional del tipo primitivo String . De esta manera se puede enviar sin ningún problema la imagen como un array unidimensional de tipo String. Cuando las imágenes llegan al método del servicio web, se deshace la serialización y se puede trabajar con la imagen en formato array bidimensional.
  • 8. JAVA FOUNDATION CLASSES Las clases Java fundamentales (JFC) son un conjunto integral de servicios y componentes GUI que simplifican enormemente el desarrollo y despliegue de aplicaciones de escritorio de calidad comercial y de Internet / Intranet. Las Java Foundation Classes (JFC, en castellano Clases Base Java) son un framework gráfico para construir interfaces gráficas de usuario portables basadas en Java. JFC se compone de Abstract Window Toolkit (AWT), Swing y Java 2D. Juntas, suministran una interfaz de usuario consistente para programas Java, tanto si el sistema de interfaz de usuario subyacente es Windows, Mac OS X o Linux. AWT es la más antigua de las dos APIs de interfaz, y fue criticada duramente por ser poco más que una envoltura alrededor de las capacidades gráficas nativas de la plataforma anfitrión. Esto significa que los widgets estándar en la AWT confían en esas capacidades de los widgets nativos, requiriendo que el desarrollador también este prevenido de las diferencias entre plataformas anfitrión. Una API de gráficos alternativa llamada Internet Foundation Classes fue desarrollada en código más independiente de la plataforma por Netscape. Últimamente, Sun mezcló la IFC con otras tecnologías bajo el nombre "Swing", añadiendo la capacidad para un look and feel enchufable de los widgets. Esto permite a los programas Swing mantener la base del código independiente de la plataforma, pero imita el look de la aplicación nativa. JAVA 2D Con Java 2D, los desarrolladores pueden hacer, manipular y transformar las imágenes 2D complejas y texto. Java 2D permite la creación de los componentes más ricos de futuro y sus aplicaciones.
  • 9. En computación, Java 2D es un API para dibujar gráficos en dos dimensiones usando el lenguaje de programación Java. Cada operación de dibujo Java 2D puede tratarse como rellenar una forma usando un pincel y componiendo el resultado en la pantalla. Estos objetos son parte necesaria de cada operación de dibujo Java 2D. Formas Una forma en Java 2D es un límite infinitamente delgado el cual define un interior y un exterior. Los Píxeles internos de la forma están afectados por la operación de dibujo, los que están fuera no. Intentar rellenar un segmento de línea recto extremadamente fino resultará en que no habrán píxeles afectados, por lo tanto una forma no contiene píxeles. En su lugar, un rectángulo fino se debe usar para que la forma contenga algunos píxeles. Pinceles Un pincel genera los colores que serán usados para cada píxel de la operación de relleno. El pincel más simple es java.awt.Color, el cual genera el mismo color para todos los píxeles. Pinceles más complicados pueden producir gradientes, imágenes, o cualquier combinación de colores. Rellenar una forma circular usando el color amarillo resulta en un círculo sólido amarillo, mientras rellenar la misma forma circular usando un pincel que genera una imagen produce un recorte circular de la imagen. Compuestos Durante cualquier operación de dibujo, hay una fuente (los píxeles que son producidos por el pincel) y un destino (los píxeles ya en la pantalla). Normalmente, los píxeles fuente simplemente sobrescriben los píxeles de destino, pero el compuesto permite modificar este comportamiento. El compuesto, dados los píxeles fuente y destino, produce el resultado final que por último aparece en la pantalla. El compuesto más común esjava.awt.AlphaComposite, el cual trata los píxeles que están siendo dibujados como parcialmente transparentes, para que los píxeles destino se muestren en algún grado.
  • 10. Rellenado Para rellenar una forma, el primer paso es identificar que píxeles caen dentro de la forma. Estos píxeles serán afectados por la operación de relleno. Los píxeles que están parcialmente dentro y parcialmente fuera de la forma pueden ser afectados en menor grado si está activado el Anti-aliasing. El pincel es requerido para generar un color de cada uno de los píxeles que se van a pintar. En el caso común del relleno de un color sólido, cada píxel será asignado al mismo color. El compuesto toma los píxeles generados por el pincel y los combina con los píxeles que ya están en la pantalla para producir el resultado final. Java Media Framework Es una extensión de Java que permite la programación de tareas multimedia en este lenguaje. Permite a audio, vídeo y otros medios basados en el tiempo que se añaden a las aplicaciones y applets incorporados en la tecnología Java. Este paquete opcional, que puede capturar, reproducir, arroyo, y convierte múltiples formatos de medios, se extiende la plataforma Java 2, Standard Edition (J2SE) para los desarrolladores multimedia, proporcionando un poderoso conjunto de herramientas para el desarrollo, la tecnología multi-plataforma escalable. Sus principales características son:  Estabilidad debida a que funciona sobre la máquina virtual java (JVM).  Sencillez, ya que permite, usando unos pocos comandos, realizar complejas tareas multimedia.  Potencia, permitiendo la manipulación de elementos multimedia de vídeo y audio locales (procedentes de la misma máquina en la que se ejecuta el programa), así como la retransmisión en tiempo real de vídeo y audio a través de la red mediante el protocolo RTP.
  • 11. JAVA 3D Según Ricard Lou Torrijos [documento en línea] se entiende como: El API Java 3D es un interface para escribir programas que muestran e interactúan con gráficos tridimensionales. Java 3D es una extensión estándar del JDK 2 de Java. El API Java 3D proporciona una colección de constructores de alto-nivel para crear y manipular geometrías 3D y estructuras para dibujar esta geometría. Java 3D proporciona las funciones para creación de imágenes, visualizaciones, animaciones y programas de aplicaciones gráficas 3D interactivas. El API 3D de Java es un árbol de clases Java que sirven como interface para sistemas de renderizado de gráficos tridimensionales y un sistema de sonido. El programador trabaja con constructores de alto nivel para crear y manipular objetos geométricos en 3D. Estos objetos geométricos residen en un universo virtual, que luego es rende rizado. El API está diseñado con flexibilidad para crear universos virtuales precisos de una amplia variedad de tamaños, desde astronómicos a subatómicos. A pesar de toda esta funcionalidad, el API es sencillo de usar. Los detalles de renderizado se manejan automáticamente. Aprovechándose de los Threads Java, el renderizador Java 3D es capaz de renderizar en paralelo. El renderizador también puede optimizarse automáticamente para mejorar el rendimiento del renderizado. Un programa Java 3D crea ejemplares de objetos Java 3D y los sitúa en un estructura de datos de escenario gráfico. Este escenario gráfico es una composición de objetos 3D en una estructura de árbol que especifica completamente el contenido de un universo virtual, y cómo va a ser renderizado. Los programas Java 3D pueden escribirse para ser ejecutados como aplicaciones solitarias o como applets en navegadores que hayan sido extendidos para soportar Java 3D, o ámbos.
  • 12. JAVA BEANS Según Ángel Franco García [documento en línea]: Un JavaBean o bean es un componente hecho en software que se puede reutilizar y que puede ser manipulado visualmente por una herramienta de programación en lenguaje Java. Para ello, se define un interfaz para el momento del diseño (design time) que permite a la herramienta de programación o IDE, interrogar (query) al componente y conocer las propiedades (properties) que define y los tipos de sucesos (events) que puede generar en respuesta a diversas acciones. Aunque los beans individuales pueden variar ampliamente en funcionalidad desde los más simples a los más complejos, todos ellos comparten las siguientes características:  Introspection: Permite analizar a la herramienta de programación o IDE como trabaja el bean  Customization: El programador puede alterar la apariencia y la conducta del bean.  Events: Informa al IDE de los sucesos que puede generar en respuesta a las acciones del usuario o del sistema, y también los sucesos que puede manejar.  Properties: Permite cambiar los valores de las propiedades del bean para personalizarlo (customization).  Persistence: Se puede guardar el estado de los beans que han sido personalizados por el programador, cambiando los valores de sus propiedades. En general, un bean es una clase que obedece ciertas reglas:  Un bean tiene que tener un constructor por defecto (sin argumentos)  Un bean tiene que tener persistencia, es decir, implementar el interface Serializable.
  • 13.  Un bean tiene que tener introspección (instrospection). Los IDE reconocen ciertas pautas de diseño, nombres de las funciones miembros o métodos y definiciones de las clases, que permiten a la herramienta de programación mirar dentro del bean y conocer sus propiedades y su conducta. RMI RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un método de manera remota. Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicación entre otras tecnologías debe utilizarse CORBA o SOAP en lugar de RMI. RMI se caracteriza por la facilidad de su uso en la programación por estar específicamente diseñado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recolección de basura distribuida (Garbage Collector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA). A través de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estará accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto. JAVA IDL Según Ricard Lou Torrijos [documento en línea]: Java IDL es una tecnología para objetos distribuidos -- es decir, objetos interactuando sobre diferentes plataformas a través de una red. Java IDL es similar a RMI (Remote Method Invocation), que soporta objetos distribuidos escritos enteramente en Java. Sin embargo, Java IDL permite intractuar a los objetos sin importar si están escritos en Java o en cualquier otro lenguaje como C, C++, COBOL, etc.
  • 14. Esto es posible porque Java IDL está basado en "Common Object Request Brokerage Architecture" (CORBA), un modelo industrial estandard para objetos distribuidos. La característica principal de CORBA es IDL, (Interface Definition Language). Caa lenguaje que soporte CORBA tiene su propio mapeo IDL -- y como su nombre implica, Java IDL soporta el mapeo para Java. CORBA y los mapeos IDL son el trabajo de un consorcio industrial conocido como OMG (Object Management Group). Sun es un miembro fundacional del OMG, y el equipo Jva IDL ha jugao un papel activo en la definición del mapeo IDL-a-Java. Para soportar la interacción entre objetos de programas separados, Java IDL proporciona un Object Request Broker, o ORB. El ORB es una librería de clases que permite una comunicación de bajo nivel entre aplicaciones Java IDL y aplicaciones compatibles con CORBA. Esto está empezando a parecer una sopa de letras, no te preocipes, los detalles sobre CORBA, IDL y ORB vienen en la próxima página. Esta sección camina a través del diseño y desarrollo de una sencilla pareja de aplicaciones Java IDL que interactuan. Empiza mostrando la arquitectura general de CORBA, luego continúa con una introducción a los pasos para construir aplicaciones CORBA en Java IDL. Finalmente, realiza cada paso para producir un cliente y un servidor que interactuan usando CORBA. JAVA NATIVE INTERFACE Java Native Interface (JNI) es un framework de programación que permite que un programa escrito en Java ejecutado en la máquina virtual java (JVM) pueda interactuar con programas escritos en otros lenguajes como C, C++ y ensamblador. El JNI se usa para escribir métodos nativos que permitan solventar situaciones en las que una aplicación no puede ser enteramente escrita en Java, como por ejemplo en el caso de que la biblioteca estándar de clases no proporcione soporte para funcionalidades dependientes de la plataforma. También se usa para modificar programas existentes escritos en algún otro lenguaje, permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las clases de la API
  • 15. estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de ficheros. El desarrollador debe asegurarse que la API estándar de Java no proporciona una determinada funcionalidad antes de recurrir al JNI, ya que la primera ofrece una implementación segura e independiente de la plataforma. El framework JNI permite a un método nativo utilizar los objetos Java de la misma forma en que el propio código de Java lo hace. Un método nativo puede crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su función. Un método nativo puede asimismo examinar y utilizar objetos que han sido creados por código de aplicación escrito en Java. A menudo se denomina a JNI como la "válvula de escape" para desarrolladores dado que les permite añadir funcionalidades a sus aplicaciones que el API de Java no puede proporcionar. Dado que -como se ha dicho antes- puede ser usado para interactuar con código escrito en otros lenguajes como C++, también se usa para operaciones y cálculos de alta complejidad temporal, porque el código nativo es por lo general más rápido que el que se ejecuta en una máquina virtual.
  • 16. CONCLUSIÓN Java es una tecnología que se usa para el desarrollo de aplicaciones que convierten a la Web en un elemento más interesante y útil. Este lenguaje de programación a evolucionado a través de los los convirtiendo en uno de los más completos en la actualidad. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Gracias a estas y otras ventajas Java se conviertioa partir del 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.
  • 17. REFERENCIAS Ricard Lou Torrijos [documento en línea] disponible en: http://www.programacion.com/articulo/java_idl_86 (Consultado el 28.06.13) Ángel Franco García Torrijos [DOCUMENTO EN LINEA] DISPONIBLE EN: http://www.sc.ehu.es/sbweb/fisica/cursojava/applets/javabeans/fundamento.htm (Consultado el 28.06.13) Ricard Lou Torrijos Torrijos [documento en línea] disponible en: http://www.programacion.com/articulo/java_3d_169 (Consultado el 28.06.13) Documento S/A [documento en línea] disponible en: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html (Consultado el 28.06.13) Documento S/A [Documento en línea] disponible en: http://www.oracle.com/technetwork/java/faqs-140150.html (Consultado el 28.06.13) Documento S/A [Documento en línea] disponible en: http://147.96.80.209/SI_G2_04_05/src/proyecto/Serializacion.htm (Consultado el 28.06.13) Ángel franco García [Documento en línea] disponible en: http://www.sc.ehu.es/sbweb/fisica/cursojava/fundamentos/archivos/flujos.htm (Consultado el 28.06.13) Ángel franco García[Documento en línea] disponible en: http://www.sc.ehu.es/sbweb/fisica/cursojava/fundamentos/archivos/teclado.htm (Consultado el 28.06.13)