1. REPUBLICA BOLIVARIANA DE VENEZUELA
INSTITUTO UNIVERSITARIO POLITECNICO
“SANTIAGO MARINO”
EXTENSION PORLAMAR
INGENIERIA DE SISTEMAS
APLICACIONES JAVA
INTEGRANTE:
Br. Valdiviezo David C.I:21.326.272
FACILITADOR:
Ing. Diógenes Rodríguez
Porlamar, Junio del 2013
2. Introducción
El lenguaje de programación de java fue de desarrollado en 1991 cuando un
grupo de programadores e ingenieros se encontraban diseñando un lenguaje de
programación destinado a electrodomésticos. Convirtiéndose en una herramienta de
desarrollo simple y orientado a objetos proporcionando una arquitectura neutra portable
y de alta precisión prestando de herramientas funcionales a los programadores que
requieran de la misma.
Java proporciona un conjunto de herramientas que facilitan la entrada y salida de
datos proporcionados a los desarrolladores de clases, funciones y métodos como los
Streams que es la manera de representar las entradas y las salidas proporcionado una
conexión ente el programa y la fuente de destino de los datos. La información es
trasladada con las clases de java relacionadas con la entrada y la salida agrupada en el
paquete Java.io.
Java incorpora clases para el manejo de gráficos como lo son las herramientas
Java foundation classes (JFC), java 2D y Java 3D las culés ya posean herramientas
graficas como botones, tablas y ventanas las cuales facilitan el diseño de las interfaces
graficas de las aplicaciones desarrolladas en este lenguaje.
Además incorpora la ejecución de como APPLET facilitando el desarrollo tanto en
arquitecturas cliente servidor y como en aplicaciones distribuidas teniendo la capacidad
de conectarse con otros ordenadores y ejecutar tareas en varios ordenadores
simultáneamente.
3. Entrada y salida de datos en java:
Según el autor Beuchot Mauricio los programas en la actualidad necesitan
comunicarse con su entorno, tanto para recoger datos e información que debe ser
procesada posteriormente y devolver los resultados obtenidos. La forma de representar
las entradas y las salidas en java es atreves de las clases STREAMS (flujos de datos).
Un STREAMS es una conexión entre el programa y la fuente o el destino de los
datos y la información se traslada en serie (un carácter continuo de otro) a través de esta
conexión. Un ejemplo de ello es cuando se quiere imprimir algo en la pantalla, se hace a
través de un STREAMS que conecta el monitor al programa.
Las entradas y salidas se manejan en java a través de una jerarquía que incluye
clases e interfaces encontradas en los paquetes de java.io. En java se tienen dos
maneras de hacer entradas y salidas: La primera es leyendo y escribiendo bytes,
mientras que la segunda es leyendo y escribiendo caracteres Unicode.
Cada uno de los tipos de entradas y salidas tiene una superclase abstracta para
lectura y otra para escritura. De ellas se derivan clases concretas que permiten manipular
de alguna forma lo que se está leyendo y escribiendo. Las entradas y salidas se ven
siempre como un flujo, ya sea de bytes o caracteres, la cual va tomando una unidad por
unidad y la procesa. Cuando este flujo termina decimos que se acabó el archivo.
Clases de Entradas y salidas más sencillas en java:
Entrada básica: La clase InputStream
La clase abstracta InputStream declara los métodos para leer datos desde una
fuente concreta y es la base de la mayor parte de los flujos de entrada en java.io. Soporta
los métodos siguientes:
int read(): Lee un sólo byte de datos y los devuelve en el rango [0..255]. Devuelve -
1 cuando se alcanza el final del flujo y no puede seguir leyendo bytes.
int read(byte [] buf): Lee un array de bytes hasta buf.length. Devuelve el número
de bytes leidos o - 1 cuando se llega al final del flujo.
4. int read(byte [] buf, int off, int len): Lee len bytes del flujo (o los que pueda) y los
coloca a partir de la posición off del array.
Salida básica: La clase OutputStream
La clase abstracta OutputStream es análoga a InputStream sólo que proporciona
métodos para manejar el flujo de salida. Los métodos que incluye son:
void write(int b) escribe b como byte, que, aunque sea declarado como int es
transformado a byte. Esto es porque habitualmente es el resultado de una
operación previa.
void write(byte [] buf) escribe un array de bytes.
void write(byte [] buf, int offset, int count) escribe un array buf de bytes, empezando
en la posición offset y escribiendo count de ellos, deteniéndose antes si encuentra
el final del array.
Clases de java para lectura y escritura de datos:
En el paquete java .io contiene las clases indispensables para la realización de la
comunicación del programa con el exterior. Dentro de los paquetes que proporciona java
existen dos familias de jerarquías distintas para la entrada y la salida de datos. Y su
diferencia principal consiste en que una de ellas opera con bytes y la otra con caracteres
cuya formación de caracteres está formada por dos bytes porque el que sigue es el
código Unicode. En general en java hay dos clases que manejan bytes una clase de
entrada y otra de salida y otras dos que manejan caracteres. La entrada y la salida de
datos del programa se podrían hacer con clases derivadas de INPUTSTREAM para la
lectura y OUTPUTSTREAM para la escritura y a subes estas clases contienen los
métodos básicos READ () y WRITE () los cueles manejan bytes que no suelen utilizar
directamente.
Las clases derivadas de READER y WRITER que manejan caracteres en vez de
bytes estas clases proporcionan una manera más práctica para las aplicaciones que
manejan texto.
5. Entrada y salida estándar de teclado y pantalla:
En el lenguaje de programación de java la entrada desde el teclado y la salida a
pantalla están reguladas a través de las clases System y esta clase pertenece al paquete
JAVA.LANG agrupando diversos métodos y objetos que guardan relación con el sistema
local. Esta clase contiene entre otros, tres funciones u objetos estáticos que son los
siguientes:
System.In: Este es un objeto de la clase prinStream preparado para recibir los
datos desde la entrada estándar del sistema siendo este habitualmente el teclado.
System.Out: Objeto de la clase prinStream que imprime los datos en la salida
estándar del sistema que está asociado con la pantalla.
System.Err: Este es utilizado para mostrar mensajes de error que también salen
por defecto en la pantalla del ordenador.
Implementado estas clases se permite la comunicación alfanumérica con el
programa a través de los métodos incluidos en tabla de métodos que permiten la entrada
y salida a un nivel elemental en java.
Para realizar la lectura desde el teclado se pude utilizar el método System.In.Read
() de la clase InputStream. El cual lee unos caracteres por cada llamada y su valor de
retorno es una Int.
En el caso de que se quiera imprimir en la pantalla se utilizan los métodos
System.Out.Print () o System.Out.Println () y estos son los métodos más utilizados por
los desarrolladores en java.
Lectura y escritura de archivos:
En java el manejo de archivos tiene características especiales, se pueden utilizar
las clases mencionadas en la entrada y salida estándar como lo son InputStream y
OutputStream con pequeñas variaciones en la forma en que se emplean. Java ofrece las
siguientes clases para la lectura y escritura de archivos proporcionando las clases
6. FILEINPUTSTREAM y FILEOUTPUTSTREAM que permiten leer y escribir bytes en los
archivos. Para los archivos de texto son preferibles FILEREADER que descienden de
READER y FILEWRITER que descienden de WRITER, y realizan las mismas funciones.
Se pueden construir un objeto de cualquiera de estas cuatros clases a partir de un
STRING el cual debe contener el nombre y la dirección en el disco del archivo o con un
objeto de la clase FILE que representan al archivo. Por ejemplo:
FILEREADER FR1 = NEW FILEREADER ("ARCHIVO.TXT"); Es equivalente a: FILE
F = NEW FILE ("ARCHIVO.TXT"); FILEREADER FR2 = NEW FILEREADER (F);
Si no encuentran el archivo indicado, los constructores de FILEREADER
y FILEINPUTSTREAM pueden lanzar una excepción java.io. El cual refleja que si el
archivo indicado no es encontrado lo crea de nuevo por defecto.
Serialización:
La serialización o (MARSHALLING) consiste en un proceso que permite la
codificación de un objeto en un medio de almacenamiento como por ejemplo un archivo
o un buffer de memoria con la finalidad de transmitirlo a través de una conexión de red
como una serie de bytes o en un formato que sea comprensible para una persona como
por ejemplo el método binario o XML entre otros.
La serialización binaria conserva la fidelidad de tipos, lo que resulta útil para
conservar el estado de un objeto entre distintas llamadas a una aplicación. Por
ejemplo, puede compartir un objeto entre distintas aplicaciones si lo serializa en
el Portapapeles.
La serialización XML sólo serializa las propiedades públicas y los campos, y no
conserva la fidelidad de tipos. Esto resulta útil cuando desea proporcionar o
consumir datos sin restringir la aplicación que utiliza los datos.
7. En el lenguaje de programación java proporciona una herramienta denominada
serialización de objetos la cual permite convertir cualquier objeto. Para realizar la
serialización es necesario implementar la interfaz serializable, la cual obliga a que todos
los campos de datos del objeto sean serializables. Esta interfaz no posee la declaración
de ninguna función miembro.
La serialización es una característica añadida al lenguaje Java para dar soporte a
La invocación remota de objetos (RMI)
La persistencia
La invocación remota de objetos permite a los objetos que viven en otros
ordenadores comportarse como si vivieran en nuestra propia máquina. La serialización
es necesaria para transportar los argumentos y los valores de retorno.
La persistencia, es una característica importante de la herramienta JAVA Beans.
El estado de un componente es configurado durante el diseño. La serialización nos
permite guardar el estado de un componente en disco, abandonar el Entorno Integrado
de Desarrollo (IDE) y restaurar el estado de dicho componente cuando se vuelve a correr
el IDE.
Lectura de un archivo en un servidor de internet:
Los objetos SERVLET son módulos proporcionados por Java que permiten
sustituir o utilizar el lenguaje de programación de java en lugar de los programas CGI
(Common Gateway Interface) escritos en otros lenguajes como c++ o Perl. Los
programas CGI son aplicaciones que se ejecutan en un servidor web en respuesta a una
acción de un BROWSER remoto o petición de una página HTML permitiendo la
generación de páginas dinámicas cuyo contenido puede variar y que por lo tanto pueden
almacenar información en un servidor.
Los SERVLET no tienen entorno grafico ya que se ejecutan en el servidor.
Recibiendo los datos y sus salidas o respuesta son habitualmente ficheros de textos
8. HTML. Estas herramientas de programación en la web son desarrolladas utilizando la
API Java.Servlet que es una extensión de java que hasta la fecha no forma parte de
ninguno de los JDK de java por ello es necesario instalar un software específico para
Java.Servlet.
Java foundation classes (JFC) y java 2D:
En java los JFC, JAVA™ (FOUNDATION CLASSES) son un conjunto de
componentes y características que facilitan y ayudan a construir los entornos gráficos de
los programas o GUIS (Graphical User Interfaces). El cual incluye una gran cantidad de
elementos gráficos como botones, paneles, menús y ventanas los cuales aminoran los
tiempos de desarrollo de aplicaciones de entornos gráficos complejos proveyendo
muchos más elementos de los que brindan los componentes AWT.
Los SWING forman parte de los elementos proveídos por las JFC los culés
permiten incorporar en las aplicaciones desarrolladas elementos gráficos de una forma
más versátil y con más capacidades que utilizando el AWT básico de java.
Alguna de las de las características más interesantes que provee los
componentes JFC, JAVA™ FOUNDATION CLASSES son:
Cualquier programa que utilice los componentes SWING puede escoger el
aspecto que desee para sus ventanas y elementos gráficos.
Cualquier componente grafico de SWING presenta más propiedades que los
elementos correspondientes al AWT. En las cueles a los botones se le pueden
incorporar imágenes.
El JDK 1.2 y las versiones siguientes a las misma java incorporan como parte de
los componentes JFC una herramienta llamada java 2D la cual permite a los
9. desarrolladores incorporar textos, imágenes y gráficos en dos dimensiones de gran
calidad.
Java Media FRAMEWORK (JMF):
En java la JMF (JAVA MEDIA FRAMEWORK) es un protocolo de transmisión de
datos y uno de los elementos gráficos simples y unificados para la reproducción de
contenidos gráficos multimedia, como por ejemplo videos, audio y animaciones,
principalmente. En las versiones del JDK anteriores a la 1.1 no incorporan esta API de
JMF por lo tanto es necesario la instalación de un software que complementa el JDK.
Java 3D
La herramienta JAVA 3D™ es un conjunto clases que facilitan la creación de
aplicaciones y APPLETSCON () y elementos 3D. Ofreciendo a los desarrolladores la
posibilidad de manipular geometrías complejas en tres dimensiones.
Las principales ventajas proporcionadas por la herramienta JAVA 3D™ frente a
otros entornos de programación 3D son:
Permite la creación de aplicaciones graficas 3D independientemente del tipo de
sistema empleado para su desarrollo.
Proporciona un conjunto de clases, interfaces y librerías de alto nivel las cuales
permiten aprovechar la aceleración grafica proporcionada por el hardware que
incorporan muchas de las nuevas tarjetas gráficas de la actualidad.
Las llamadas a los métodos 3D son transformadas en llamadas a las funciones
de OPENGL O DIRECT3D.
Oficialmente JAVA 3D™ forma parte de la API JMF, y se trata de unas librerías
que se instalan independientemente de JMF.
10. Java Beans:
JAVA BEANS proporciona a los desarrolladores la posibilidad de escribir
“Elementos o componentes de software”. Los componentes son elementos reutilizables
que pueden incorporar gráficos a otros componentes como APPLETS () y aplicaciones
utilizando herramientas gráficas para el desarrollo de aplicaciones que requieran gráficos
de gran calidad. Cada uno de los componentes proporcionado por esta herramienta
ofrece sus características concretas como por ejemplo los métodos públicos y sus
eventos a los entornos gráficos de desarrollo permitiendo su desarrollo visual. Siendo
equivalente a otros componentes de algunos de los entornos visuales como por ejemplo
los controles de VISUAL BASIC.
El BDK (BEANS DEVELOPER KIT) es un conjunto de herramientas para
desarrollar JAVA BEANS y se trata de un kit no incorporado en los distintos JDK de java.
RMI e JAVA IDL
Las herramientas RMI (REMOTE METHOD INVOCATION) como JAVA IDL (JAVA
INTERFACE DEFINITIONLANGUAGE) son utilizadas para desarrollar aplicaciones
distribuidas. Este tipo de aplicaciones presentan las características de una aplicación que
pude ejecutar funciones y métodos en varios ordenadores distintos. Manejando una
referencia o un objeto que se encuentra en un ordenador remoto, siendo posible ejecutar
métodos de ese objeto desde una aplicación que se ejecuta en un ordenador distinto.
RMI Y JAVA IDL proporcionan los mecanismos mediante los cuales los distintos
objetos distribuidos se comunican y se transmiten la información.
RIM es una solución basada íntegramente en java e incorpora métodos para
localizar los objetos remotos, comunicarse con ellos e incluso enviar un objeto de java.
11. JAVA IDL permite entre objetos distribuidos utilizando CORBA (COMMON
OBJECT REQUEST BROKER ARCHITECTURE). Siendo un estándar para la
interconexión entre los objetos distribuidos.
Java Native Interface (JNI):
Java Native Interface (JNI) es un framework o (marco de trabajo) de
programación que permite ejecutar códigos nativos de java y viceversa ejecutándolos
en la máquina virtual java (JVM) la cual pueda interactuar con programas escritos en
otros lenguajes como C, C++ y ensamblador.
Llamamos máquina virtual a un entorno que de programación formado por:
El programa que ejecuta los bytecodes Java.
Las librerías (API) Java.
JNI de java posee una interfaz bidireccional que permite a las aplicaciones
desarrolladas en Java a llamar a códigos nativos y viceversa. Es decir soporta dos tipos
de interfaces
Native Methods: La cual permite a Java llamar a funciones
implementadas en librerías nativas.
Invocation Interface: Nos permite incrustar una máquina virtual Java
en una aplicación nativa.
La evolución de la herramienta JNI desde los orígenes de Java se incluía ya una
forma de hacer llamadas nativas desde la máquina virtual a las librerías del host
environment, así como el host environment a la maquina virtual. Siendo implantadas en
la versión 1.0 del JDK de Java utilizando los paquetes Java.net y Java.awt.
12. Conclusión
Java es el lenguaje esencial para el desarrollo de aplicaciones en cualquier
sistema operativo relacionado con el internet por lo que es de vital importancia en la
actualidad ya que facilita el trabajo de los desarrolladores de aplicaciones. Los ficheros
en java son herramientas importantes ya que pueden almacenar una gran cantidad de
información de cualquier indalo. En este trabajo tratamos las clases más utilizadas que
nos permiten la lectura y escritura de un fichero de java. Las clases imputStream y
OutputStream derivan de manera directa de los paquetes java.lang.objec permitiendo
trabajar con fiches asociados o distribuidos.
Actualmente java es uno de los lenguajes de programación más utilizado por los
los programadores por la gran cantidad de herramienta que brinda con relación al manejo
de archivos, herramientas graficas reduciendo así los tiempos de desarrollo de
aplicaciones. Java permite el desarrollo de aplicaciones web dinámicas desde un sistema
de información distribuido como HTML basado en la red.
13. Bibliografía
Introducción a las ciencias de la computación Escrito por Peláez V. Canek, Elisa
Viso Gurovich
Programación orientada a objetos con Java Escrito por Francisco Durán, Francisco
Gutiérrez, Ernesto Pimentel
Entrada y salida de datos de java Escrito por Juan Pavon Mestras
Introducción a la estructura de datos en java Escrito por Sonia Jaramillo
Valbuena,Sonia Jaramillo Valbuena, Sergio Augusto Cardona Torres, Dumar Antonio
Villa Zapata
Introducción a la lógica Escrito por Beuchot Mauricio
http://plato.acadiau.ca/courses/comp/dsilver/2513/EclipseAndTomcatTutorial/
http://www.programacion.com/articulo/swing_y_jfc_java_foundation_classes_94