Republica Bolivariana De Venezuela
Instituto Universitario Politécnico “Santiago Mariño”
Extensión Porlamar
Realizado Por:...
INTRODUCCIÓN
Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la
cual fue adquirida por la compa...
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 ...
CLASES PARA LECTURA Y ESCRITURA EN JAVA
Según Ángel Franco García [documento en línea]:
Lectura
Las clases Reader e InputS...
Dichas clases definen otras funciones miembro que no estudiaremos de momento.
Escritura
La clase Writer proporciona tres m...
System.in.read();
}catch (IOException ex) { }
Obligatoriamente, el proceso de lectura ha de estar en un bloque try..catch....
SERIALIZACION
Para aclarar este concepto, aquí se da una definición formal del concepto de
serialización de datos. “La ser...
JAVA FOUNDATION CLASSES
Las clases Java fundamentales (JFC) son un conjunto integral de servicios y
componentes GUI que si...
En computación, Java 2D es un API para dibujar gráficos en dos dimensiones
usando el lenguaje de programación Java. Cada o...
Rellenado
Para rellenar una forma, el primer paso es identificar que píxeles caen dentro de la
forma. Estos píxeles serán ...
JAVA 3D
Según Ricard Lou Torrijos [documento en línea] se entiende como:
El API Java 3D es un interface para escribir prog...
JAVA BEANS
Según Ángel Franco García [documento en línea]:
Un JavaBean o bean es un componente hecho en software que se pu...
 Un bean tiene que tener introspección (instrospection). Los IDE reconocen ciertas
pautas de diseño, nombres de las funci...
Esto es posible porque Java IDL está basado en "Common Object Request
Brokerage Architecture" (CORBA), un modelo industria...
estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al
usuario, por ejemplo las funcional...
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...
REFERENCIAS
Ricard Lou Torrijos [documento en línea] disponible en:
http://www.programacion.com/articulo/java_idl_86 (Cons...
Entrada y salida de datos en java
Próxima SlideShare
Cargando en…5
×

Entrada y salida de datos en java

419 visualizaciones

Publicado el

Programacion No Numerica II
I.U.P "Santiago Mariño"
SAIA

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
419
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Entrada y salida de datos en java

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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)

×