1. República Bolivariana De Venezuela
Instituto Universitario Politécnico “Santiago Mariño”
Extensión-Porlamar
APLICACIONES JAVA
Elaborado por:
Pérez Carlos CI: 18112733
Porlamar, 30 de Junio de 2013
2. INTRODUCCIÓN
SUN MICROSYSTEMS, compañía de servidores para Internet, ha
desarrollado el Lenguaje Java, para resolver la mayoría de los problemas
que se le plantean a los creadores de software, entre las diferentes máquinas
y diversos sistemas operativos, y sistemas de ventanas que funcionaban
sobre una misma máquina, sumándose a esto la dificultad de crear
aplicaciones distribuidas en una red como Internet.
Este lenguaje ha causado ha ido en ascenso, porque posee orientación a
objetos, menor tiempo de desarrollo, mayor portabilidad, más seguridad,
simplicidad en la distribución de software, orientación a redes, programación
multitarea, etc. Ocupa un lugar importante en la lista de lenguajes a tener en
cuenta cundo se va a desarrollar aplicaciones, particularmente en el caso de
aplicaciones de negocios que implican conexión a red, arquitecturas
multiusuarios, cliente/servidor, o acceso desde internet.
Tiene muchas posibilidades como lenguaje de aplicaciones
comerciales y desarrollos dirigidos a la empresa. Posee innumerables
ventajas, dos de ellas muy importantes son la independencia de la
plataforma y el diseño orientado a redes. Java tiene posibilidades de
integración de sistemas, porque permite que todos ellos corran las mismas
aplicaciones, lo que disminuye el costo de desarrollo, mantenimiento y
entrenamiento de los usuarios.
3. ENTRADA Y SALIDA DE DATOS EN JAVA
La entrada y salida en java se implementa en el paquete java.io. La
E/S en java se basa en el concepto de flujo, que es una secuencia ordenada
de datos que tienen una fuente (flujos de entrada) o un destino (flujos de
salida). Las clases de E/S aislan a los programadores de los detalles
específicos del sistema de funcionamiento de la máquina, al tiempo que
posibilitan el acceso a recursos del sistema por medio de ficheros o archivos
(files).
La clase abstracta InputStream declara los métodos para leer datos desde
una fuente concreta y es la clase base de la mayor parte de los flujos de
entrada en java.io. Soporta los métodos siguientes:
intread() 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.
intread(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.
intread(byte [] buf, int off, intlen) lee len bytes del flujo (o los que pueda) y los
coloca a partir de la posición off del array.
longskip(longcount) salta hasta count bytes de entrada o hasta el final del
flujo de entrada, devolviendo el número de bytes saltados.
intavailable() devuelve el número de bytes que están disponibles para leerse.
voidclose() cierra el flujo de entrada que abrió el constructor no-arg, liberando
los recursos asociados a ese flujo. No es necesario invocar este método ya
que el flujo se cierra cuando se destruye el objeto aunque es conveniente
hacerlo ya que vuelca el buffer sobre el disco.
4. El siguiente ejemplo es un programa muy sencillo que hace el eco del la
entrada estandar (el teclado) leyendo los caracteres de 5 en 5 (el return
también es un carácter). Finaliza cuando se cierra el flujo de entrada con un
carácter Ctrl-D. El método main debe indicar que lanzará una excepción
InputStream. El método read se aplica sobre el objeto System.in que es un
flujo de entrada; la entrada estandar, el teclado. El constructor String(byte[]
bytes, inthiByte, int offset, intconunt) hace un String nuevo cuyo valor es el
subarray especificado del array bytes comenzando en offset y de count
caracteres. En las conversiones de ASCII8 o ISO-LATIN-1 el hibyte estará a
0.
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:
voidwrite(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.
voidwrite(byte [] buf) escribe un array de bytes.
voidwrite(byte [] buf, int offset, intcount) escribe un arraybuf de bytes,
empezando en la posición offset y escribiendo count de ellos, deteniendose
antes si encuentra el final del array.
voidflush() vacia el flujo de modo que los bytes que quedaran por escribir son
escritos.
voidclose() cierra el flujo de salida liberando los recursos asociados a ese
flujo.
5. A menos que se diga lo contrario estos métodos lanzan una excepción
IOException si detectan algún error en el flujo de salida.
CLASES DE JAVA PARA LECTURA Y ESCRITURA DE DATOS
El package java.io contiene las clases necesarias para lacomunicación
del programa con el exterior. Dentro de este package existen dos familias de
jerarquías distintas para laentrada/salida de datos. La diferencia principal
consiste en que una opera con bytes y la otra con caracteres (el carácter de
java está formadopor dos bytes porque sigue el código unicode). en
general,para el mismo fin hay dos clases que manejan bytes .Estas clases
tienen losmétodos básicos read () y write() que manejan bytes y que nose
suelen utilizar directamente. la figura muestra lasclases que derivan de
inputstream y la figura las que derivan de outputstream.
En java 1.1 aparecieron dos nuevas familias de clases, derivadas de
reader y writer, que manejan caracteres en vez de bytes. Estas clases
resultan másprácticas para las aplicaciones en las que se maneja texto. Las
clases que heredan de reader están incluidas en la figura y las que heredan
de writer enla figura.
6. http://es.scribd.com/doc/51830722/184/CLASES-DE-JAVA-PARA-LECTURA-Y-ESCRITURA-DE-
DATOS
ENTRADA Y SALIDA ESTÁNDAR (TECLADO Y PANTALLA)
En java, la entrada desde teclado y la salida a pantalla están reguladas
atraves de la clase system. Esta clase pertenece al packagejava.lang y
agrupadiversos métodos y objetos que tienen relación con el sistema local.
contiene,entre otros, tres objetos static que son:
system.in:
Objeto de la clase inputstream preparado para recibir datos desde la entrada
estándar del sistema (habitualmente el teclado).
system.out:
Objeto de la clase printstream que imprimirá los datos en la salidaestándar
del sistema (normalmente asociado con la pantalla).
system.err:
7. Objeto de la clase printstream. Utilizado para mensajes de error que salen
también por pantalla por defecto. Estas clases permiten la comunicación
alfanumérica con el programa a travésde lo métodos incluidos en la tabla son
métodos que permiten laentrada/salida a un nivel muy elemental. Existen tres
métodos de system que permiten sustituir la entrada y salidaestándar. por
ejemplo, se utiliza para hacer que el programa lea de unarchivo y no del
teclado.
system.setin(inputstream
is);system.setout(printstreamps);system.seterr(printstreamps);
El argumento de setin() no tiene que ser necesariamente del tipo
inputstream. Esuna referencia a la clase base, y por tanto puede apuntar a
objetos de cualquiera de sus clases derivadas (como fileinputstream).
asimismo, elconstructor de printstream acepta un outputstream, luego se
puede dirigir lasalida estándar a cualquiera de las clases definidas para
salida.
LECTURA Y ESCRITURA DE ARCHIVOS
8. Ficheros
Para realizar operaciones sobre los ficheros, necesitamos contar con la
información referente sobre un fichero (archivo). La clase File proporciona
muchas utilidades relacionadas con ficheros y con la obtención de
información básica sobre esos ficheros.
SERIALIZACIÓN
9. La serialización de un objeto consiste en obtener una secuencia de bytes que
represente el estado de dicho objeto. Esta secuencia puede utilizarse de
varias maneras (puede enviarse a través de la red, guardarse en un fichero
para su uso posterior, utilizarse para recomponer el objeto original, etc.).
En ocasiones puede interesar que un atributo concreto de un objeto no sea
serializado. Esto se puede conseguir utilizando el modificador transient, que
informa a la JVM de que no nos interesa mantener el valor de ese atributo
para serializarlo o hacerlo persistente.
Ejemplo:
public class MiFecha
{ protectedint n;
protected Date fecha;
protectedtransientlong s; . . . }
10. LECTURA DE UN ARCHIVO EN UN SERVIDOR DE INTERNET
Una applet de Java es una aplicación Java pequeña incluida en una
página web. Una applet se escribe con el lenguaje de programación Java
pero se puede mezclar con el HTML (por su siglas en inglés, lenguaje de
marcado hipertextual) que compone la página web. Algunos ejemplos de
applets son una prueba en línea que proporciona resultados instantáneos o
un simple juego Java en línea incrustado en la página web. A veces, el
programador web necesita la applet para escribir la información para un
archivo del servidor, como por ejemplo los resultados de una prueba en línea
que el usuario puede guardar e imprimir.
Ejemplo cómo leer desde java una página web ofrecida por un
servidor http, por un servidor https que no requiere certificado de cliente y por
un servidor https que sí requiere certificado de cliente.
Primero haremos aproximaciones con código java. Al final un ejemplo
sin tanto rollo de código, pero usando las SystemProperties de java.
11. JAVA FOUNDATION CLASSES (JFC) Y JAVA 2D
Java foundationclases:
(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.
http://es.wikipedia.org/wiki/Java_Foundation_Classes
12. JAVA 2D:
Es una de las APIs (ApplicationProgram Interface) más ricas que
proporciona la edición estándar de Java (J2SE). El presente texto aborda las
tres áreas principales que integran Java2D: figuras geométricas, imágenes y
dibujo de texto. Asimismo se introducen en profundidad los conceptos
generales que pueden aplicarse a todos ellos, como pueden ser el
tratamiento del color y de la transparencia, la gestión de transformaciones
geométricas o la manipulación de ficheros JPEG.
A medida que se van introduciendo nuevas clases de la API, éstas se
van hilvanando entre sí para proporcionar al programador un mayor control
sobre el aspecto de los lienzos que quiera dibujar. De esta forma se estudia,
entre otras muchas cosas, el dibujo de figuras sobre fotografías digitales, la
sobreimpresión de texto sobre imágenes e incluso la utilización del contorno
de un texto en negrita como elemento a través del que ver una imagen de
fondo.
http://www.lcc.uma.es/~galvez/Java2D.html
JAVA MEDIA FRAMEWORK (JMF)
Java Media Framework o JMF (en español entorno de trabajo multimedia de
Java) es una extensión de Java que permite la programación de tareas
multimedia en este lenguaje de programación.
Características
Sus principales características son:
Estabilidad debida a que funciona sobre la máquina virtual java (JVM).
13. 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.
JMF no se incluye en la JDK, ni en la JRE, sino que debe conseguirse como
un paquete externo.
http://es.wikipedia.org/wiki/Java_Media_Framework
JAVA BEANS
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
14. 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.
Propiedades
Una propiedad es un atributo del JavaBean que afecta a su apariencia o a su
conducta. Por ejemplo, un botón puede tener las siguintes propiedades: el
tamaño, la posición, el título, el color de fondo, el color del texto, si está o no
habilitado, etc.
15. Las propiedades de un bean pueden examinarse y modificarse mediante
métodos o funciones miembro, que acceden a dicha propiedad, y pueden ser
de dos tipos:
gettermethod: lee el valor de la propiedad
settermethod: cambia el valor de la propiedad.
Un IDE que cumpla con las especificaciones de los JavaBeans sabe como
analizar un bean y conocer sus propiedades. Además, crea una
representación visual para cada uno de los tipos de propiedades,
denominada editor de propiedades, para que el programador pueda
modificarlas fácilmente en el momento del diseño.
Ejemplo:
//miembro de la clase que se usa para guardar el valor de la
propiedad
privateString nombre;
//métodos set y get de la propiedad denominada Nombre
publicvoidsetNombre(StringnuevoNombre){
nombre=nuevoNombre;
}
public String getNombre(){
return nombre;
}
RMI Y JAVA IDL
RMI
(Java RemoteMethodInvocation) 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.
16. 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
(GarbageCollector distribuido) y paso de tipos arbitrarios (funcionalidad no
provista por CORBA).
JAVA NATIVE INTERFACE (JNI)
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.
17. 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.
18. CONCLUSIÓN
Entrada y salida de datos en javaen java se basa en el concepto de flujo, que
es una secuencia ordenada de datos que tienen una fuente (flujos de
entrada) o un destino (flujos de salida).Este contiene las clases necesarias
para lacomunicación del programa con el exterior. Dentro de este package
existen dos familias de jerarquías distintas para laentrada/salida de datos.
Para la lectura y escritura de archivos se realizan operaciones sobre la clase
File que proporciona muchas utilidades relacionadas con ficheros y con la
obtención de información básica sobre esos ficheros.
Java media framework es una extensión de Java que permite la
programación de tareas multimedia en este lenguaje de programación.
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.
JavaBean componente hecho en software que se puede reutilizar y que
puede ser manipulado visualmente por una herramienta de programación en
lenguaje Java. Esta define un interfaz para el diseño (design time) que
permite a la herramienta de programación o IDE, interrogar (query) al
componente y conocer las propiedades (properties)
19. BIBLIOGRAFIA
Desarrollo de bases de datos en Java.
Martin Rinehart, editorial Mc Graw-Hill. Año 1.998.
Manual de Java Patrick Naughton,
Editorial Mc Graw-Hill. Año 1.999.
Aplicaciones de negocios en Java
Jorge Bourdette. Compumagazine.
Direcciones de internet consultadas:
http://www2.caminos.upm.es/Departamentos/matematicas/Fdistancia/PIE/jav
a/temasj/tjava13.pdf
http://www.monografias.com/trabajos/java/java.shtml
www.monografias.com/trabajos/java/java.shtml
http://arco.inf.uc3m.esp/ii_pstr
www.geocities.com/CollegePark/Quad/8901/tema05.html
ftp://ftp.javasoft.com/docs/tutorial.html.zip