SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Instituto Universitario Politécnico Santiago Mariño
Escuela de Ingeniería de Sistemas
Porlamar-Estado Nueva Esparta
Programación No Numérica II
APLICACIONES JAVA.
Realizado Por:
BR. Rolman Calderín/ C.I: 19682811
Saia – Profesor: Diógenes Rodriguez
Porlamar, Junio de 2013
Instituto Universitario Politécnico Santiago Mariño
Realizado Por:
BR. Rolman Calderín/ C.I: 19682811
Profesor: Diógenes Rodriguez.
Introducción
Java es relativamente un nuevo lenguaje de programación debido a los continuos
cambios, la API (application programming interface) java incorpora muchos aspectos
que en cualquier otro lenguaje son extensiones, threads, ejecución remota, componentes,
seguridad, acceso a bases de datos, entre otros. Por eso es un lenguaje ideal para aprender,
porque incorpora todos estos conceptos de un modo estándar, mucho más sencillo y claro
que con las citadas extensiones de otros lenguajes.
El lenguaje java posee varios atributos dentro de ello podemos destacar que es un
lenguaje simple, esta orientado a objetos, es robusto, seguro, de arquitectura neutra,
multitarea, dinámico, entre muchas otras buenas cualidades. Los programas desarrollados
en Java presentan diversas ventajas frente a otros lenguajes, en lo que podemos destacar
que posee una ejecución como aplicación independiente, ejecución como Applet, ejecución
como Servlet, ente otros.
Las Applets en Java cumplen una gran funcionalidad y fue pensado para ser colocados
dentro de una página web. Estos pueden ser interpretados por cualquier navegador con
capacidades Java. Estos programas se insertan en las páginas usando una etiqueta especial,
como también se insertan vídeos, animaciones flash u otros objetos. Hoy día mediante
applets se pueden integrar en las páginas web aplicaciones multimedia avanzadas, incluso
con imágenes 3D o sonido y vídeo de alta calidad.
Entrada y Salida de Datos en Java
Según la pagina web: http://www.ciberaula.com/articulo/java_io
nos dice: Cualquier programa realizado en Java que necesite llevar a cabo una operación de
I/O lo hará a través de un stream. Un stream, cuya traducción literal es "flujo", es una
abstracción de todo aquello que produzca o consuma información. Podemos ver a este
stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace
el sistema de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues
las clases y métodos de I/O que se necesita
dispositivo con el que se este
con el teclado, el monitor, un sistema de ficheros o un socket de red liberando a nuestro
código de tener que saber con quién está interactuando.
Para traer la información, un programa abr
(un fichero, memoria, un socket) y lee la información seriamente, de esta forma:
Similarmente, un programa puede enviar información a un destino externo abriendo un
stream sobre un destino y escribiendo la
Entrada y Salida de Datos en Java
http://www.ciberaula.com/articulo/java_io visitada el 29/06/2013
Cualquier programa realizado en Java que necesite llevar a cabo una operación de
vés de un stream. Un stream, cuya traducción literal es "flujo", es una
abstracción de todo aquello que produzca o consuma información. Podemos ver a este
stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace
a de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues
y métodos de I/O que se necesita emplear son las mismas independientemente de
dispositivo con el que se este actuando, luego, el núcleo de Java, sabrá si tiene que tratar
con el teclado, el monitor, un sistema de ficheros o un socket de red liberando a nuestro
código de tener que saber con quién está interactuando.
Para traer la información, un programa abre un stream sobre una fuente de información
(un fichero, memoria, un socket) y lee la información seriamente, de esta forma:
Similarmente, un programa puede enviar información a un destino externo abriendo un
stream sobre un destino y escribiendo la información seriamente, de esta forma:
visitada el 29/06/2013
Cualquier programa realizado en Java que necesite llevar a cabo una operación de
vés de un stream. Un stream, cuya traducción literal es "flujo", es una
abstracción de todo aquello que produzca o consuma información. Podemos ver a este
stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace
a de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues
emplear son las mismas independientemente del
actuando, luego, el núcleo de Java, sabrá si tiene que tratar
con el teclado, el monitor, un sistema de ficheros o un socket de red liberando a nuestro
e un stream sobre una fuente de información
(un fichero, memoria, un socket) y lee la información seriamente, de esta forma:
Similarmente, un programa puede enviar información a un destino externo abriendo un
información seriamente, de esta forma:
Byte streams: nos proporciona un medio adecuado para el manejo de entradas y salidas
de bytes y su uso lógicamente está orientado a la lectura y escritura de datos binarios. El
tratamiento del flujo de bytes v
InputStream y OutputStream. Cada una de estas clases abstractas
concretas que controlan las diferencias ente los distintos dispositivos de I/O que se pueden
utilizar. Así mismo, estas dos clases son las que definen los métodos que sus subclases
tendrán implementados y, de entre todas, destacan las clases read() y write() que leen y
escriben bytes de datos respectivamente.
Character streams: Proporciona un medio conveniente para el manejo de entradas y
salidas de caracteres. Dichos flujos usan codificación Unicode y, por tanto, se pueden
internacionalizar. Una observación: Este es un modo que Java nos proporciona para
manejar caracteres pero al nivel más bajo todas las operaciones de I/O son orientadas a
byte. Al igual que la anterior el flujo de caracteres también viene gobernado por dos clases
abstractas: Reader y Writer. Dichas clases manejan flujos de caracteres Unicode. Y también
de ellas derivan subclases concretas que implementan los métodos definidos en ellas siendo
los más destacados los métodos read() y write() que, en este caso, leen y escriben caracteres
de datos respectivamente.
Un File es el único objeto del paquete de E/S que referencia a un archivo de disco real.
La clase File no especifica cómo se recupera o almacena la información en los archivos;
sólo describe las propiedades de un objeto archivo.
os proporciona un medio adecuado para el manejo de entradas y salidas
de bytes y su uso lógicamente está orientado a la lectura y escritura de datos binarios. El
tratamiento del flujo de bytes viene gobernado por dos clases abstractas que son
InputStream y OutputStream. Cada una de estas clases abstractas tienen varias subclases
concretas que controlan las diferencias ente los distintos dispositivos de I/O que se pueden
dos clases son las que definen los métodos que sus subclases
tendrán implementados y, de entre todas, destacan las clases read() y write() que leen y
escriben bytes de datos respectivamente.
: Proporciona un medio conveniente para el manejo de entradas y
salidas de caracteres. Dichos flujos usan codificación Unicode y, por tanto, se pueden
internacionalizar. Una observación: Este es un modo que Java nos proporciona para
al nivel más bajo todas las operaciones de I/O son orientadas a
byte. Al igual que la anterior el flujo de caracteres también viene gobernado por dos clases
abstractas: Reader y Writer. Dichas clases manejan flujos de caracteres Unicode. Y también
s derivan subclases concretas que implementan los métodos definidos en ellas siendo
los más destacados los métodos read() y write() que, en este caso, leen y escriben caracteres
es el único objeto del paquete de E/S que referencia a un archivo de disco real.
La clase File no especifica cómo se recupera o almacena la información en los archivos;
sólo describe las propiedades de un objeto archivo.
os proporciona un medio adecuado para el manejo de entradas y salidas
de bytes y su uso lógicamente está orientado a la lectura y escritura de datos binarios. El
iene gobernado por dos clases abstractas que son
varias subclases
concretas que controlan las diferencias ente los distintos dispositivos de I/O que se pueden
dos clases son las que definen los métodos que sus subclases
tendrán implementados y, de entre todas, destacan las clases read() y write() que leen y
: Proporciona un medio conveniente para el manejo de entradas y
salidas de caracteres. Dichos flujos usan codificación Unicode y, por tanto, se pueden
internacionalizar. Una observación: Este es un modo que Java nos proporciona para
al nivel más bajo todas las operaciones de I/O son orientadas a
byte. Al igual que la anterior el flujo de caracteres también viene gobernado por dos clases
abstractas: Reader y Writer. Dichas clases manejan flujos de caracteres Unicode. Y también
s derivan subclases concretas que implementan los métodos definidos en ellas siendo
los más destacados los métodos read() y write() que, en este caso, leen y escriben caracteres
es el único objeto del paquete de E/S que referencia a un archivo de disco real.
La clase File no especifica cómo se recupera o almacena la información en los archivos;
Los archivos son un origen y un destino primario de los datos dentro de la mayoría de
los programas. A pesar de que se les imponente restricciones severas cuando se utilizan
dentro de applets, los archivos siguen siendo un recurso básico para almacenar información
persistente y compartida. Los objetos archivo se pueden crear utilizando uno de los tres
constructores disponibles.
El ejemplo siguiente crea tres archivos: f1, f2 y f3. El primer objeto File se construye
utilizando un trayecto de directorio como único argumento. El segundo se crea utilizando
dos argumentos, el trayecto y el nombre de archivo. El tercero se crea utilizando el trayecto
de archivo asignado a f1 y un nombre de archivo; f3 refiere al mismo archivo que f2.
File f1 = new File("/");
File f2 = new File("/","autoexec.bat");
File f3 = new File(f1, "autoexec.bat");
InputStream InputStream es una clase abstracta que define el modelo de Java para el
flujo de entrada. Todos los métodos de esta clase lanzarán una IOException si se producen
condiciones de error.
Este es un breve resumen de los métodos de InputStream: read() devuelve una
representación como entero del siguiente byte de entrada disponible.
Read (byte[]) intenta leer hasta b.length bytes situándolos en b y devuelve el número
real de bytes que se leyeron con éxito. read(byte b[], int off, int len) intenta leer hasta len
bytes situándolos en b comenzando en b[off], y devuelve el número de bytes que se leyeron
con éxito.
skip(long n) omite n bytes de la entrada, y devuelve el número de bytes que se han
omitido. available() devuelve el número de bytes de entrada disponibles actualmente para
su lectura.
close() cierra el origen de entrada. Los intentos de lectura posteriores generarán una
IOException. mark(int limitelectura) coloca una marca en el punto actual del flujo de
entrada que seguirá siendo válida hasta que se lean limitelectura bytes.
reset() devuelve el puntero de entrada ala marca establecida previamente.
markSupported() devuelve true si se admiten mark/reset en este flujo.
OutputStream Igual que InputStream, OutputStream es una clase abstracta que define el
flujo de salida. Todos los métodos de esta clase devuelven un valor void y lanzan una
IOException en caso de error.
Esta es una lista de los métodos de OutputStream: write (int b) escribe un único byte en
un flujo de salida. Observar que el parámetro en un int, lo que permite que se llame a write
con expresiones sin tener que convertir su tipo a byte.
Write (byte b[]) escribe una matriz completa de bytes en un flujo de salida. Write (byte
b[], int off, int len) escribe len bytes de la matriz b, comenzando a partir de b[off].
flush() inicializa el estado de la salida de manera que se limpian todos los buffers.
Close () cierra el flujo de salida. Los intentos de escritura posteriores generarán una
IOException.
Clases de Java Para Lectura y Escritura de Datos
Según la pagina web: http://chuwiki.chuidiang.org visitada el 29/06/2013 nos dice: Una
clase es una agrupación de datos (variables o campos) y de funciones (métodos) que operan
sobre esos datos. A estos datos y funciones pertenecientes a una clase se les denomina
variables, métodos o funciones miembro. La programación orientada a objetos se basa en la
programación de clases. Un programa se construye a partir de un conjunto de clases. Una
vez definida e implementada una clase, es posible declarar elementos de esta clase de modo
similar a como se declaran las variables del lenguaje (int,double, string). Los elementos
declarados de una clase se denominan objetos de la clase. De una única clase se pueden
declarar o crear numerosos objetos. La clase es lo genérico: es el patrón o modelo para
crear objetos.
Cada objeto tiene sus propias copias de las variables miembro, con sus propios valores,
en general distintos de los demás objetos de la clase. Las clases pueden tener variables
static, que son propias de la clase y no de cada objeto.
Podemos abrir un fichero de texto para leer usando la clase FileReader. Esta clase 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, se puede construir un BufferedReader a partir
del FileReader de la siguiente forma:
1
2
3
4
5
File archivo = new File ("C:archivo.txt");
FileReader fr = new FileReader (archivo);
BufferedReader br = new BufferedReader(fr);
...
String linea = br.readLine();
El siguiente código escribe un fichero de texto desde cero.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.io.*;
public class EscribeFichero
{
public static void main(String[] args)
{
FileWriter fichero = null;
PrintWriter pw = null;
try
{
fichero = new FileWriter("c:/prueba.txt");
pw = new PrintWriter(fichero);
for (int i = 0; i < 10; i++)
pw.println("Linea " + i);
} catch (Exception e) {
18
19
20
21
22
23
24
25
26
27
28
29
30
e.printStackTrace();
} finally {
try {
// Nuevamente aprovechamos el finally para
// asegurarnos que se cierra el fichero.
if (null != fichero)
fichero.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
Si se quiere añadir al final de un fichero ya existente, simplemente se debe colocar un
flag a true como segundo parámetro del constructor de FileWriter.
FileWriter fichero = new FileWriter("c:/prueba.txt",true);
Entrada y Salida Estándar (Teclado y Pantalla)
Según http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/archivos/teclado.htm
esta pagina web visitada el 29/06/2013 nos dice: 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 clase System 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 se escribe:
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 soninsert 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.
Existe la posibilidad de conectar el objeto System.in con un objeto de la
clase InputStreamReader para leer los caracteres tecleados por el usuario. Esta conexión se
realiza mediante la sentencia:
Reader entrada = new InputStreamReader(System.in);
Para leer una sucesión de caracteres se emplea un código similar
StringBuffer str=new StringBuffer();
char c;
try{
Reader entrada=new InputStreamReader(System.in);
while ((c=(char)entrada.read())!='n'){
str.append(c);
}
}catch(IOException ex){}
Para imprimir los caracteres leídos se escribe como en la sección anterior:
System.out.println(str);
Podemos usar la segunda versión de la función read para leer el conjunto de caracteres
tecleados por el usuario.
char[] buffer=new char[255];
try{
Reader entrada=new InputStreamReader(System.in);
int numBytes=entrada.read(buffer);
System.out.println("Número de bytes leídos "+numBytes);
}catch(IOException ex){ }
En esta segunda porción de código, se lee un conjunto de caracteres hasta que se pulsa la
tecla Retorno, los caracteres se guardan en el array buffer. La función read devuelve el
número de caracteres leídos.
Para imprimir los caracteres leídos se crea un objeto str de la clase String a partir de un
array de caracteres buffer, empleando uno de los constructores de dicha clase. A
continuación, se imprime el string str.
String str=new String(buffer);
System.out.println(str);
Lectura y Escritura de Archivos
Según la pagina web: http://es.scribd.com/doc/13562650/130/Lectura-y-Escritura-de-
Archivos-II visitada el 29/06/2013 nos dice: Las clases FileInputStream y FileOutputStream
permiten leer y escribir bytes en archivos binarios. Las clases FileReader y FileWriter
permiten leer y escribir caracteres en archivos de texto. Cada llamada a read() o write()
accede al disco para un único byte o un único carácter ⇒ poco eficiente. Para mejorarlo, se
utilizan las clases que implementan un buffer, de modo que se lee del disco (o se escribe) un
conjunto de bytes o caracteres en cada acceso.
En la lectura, los constructores de FileInputStream y FileReader, si no encuentran el archivo
indicado, pueden lanzar la excepción FileNotFoundException. En la escritura, los
constructores de FileOutputStream y FileWriter pueden lanzar la excepción IOException. Si no
se encuentra el archivo dado, se crea nuevo. Si ya existe, por defecto escribe desde el
comienzo; pero se puede indicar que añada al final (con un 2ºparámetro true).
FileInputStream fis = n e w F i l e I n p u t S t r e a m ( “ f i c h . b i n ” ) ;
BufferedInputStream bis = new BufferedInputStream (fis);
i n t b = b i s . r e a d ( ) ; / / l e e u n s ó l o byte, pero llena
//el buffer de datos para
//próximas lectura
Serialización
Serialización de un Objeto: Implementar Serializable
Para que un programa java pueda convertir un objeto en un montón de bytes y pueda
luego recuperarlo, el objeto necesita ser Serializable. Al poder convertir el objeto a bytes,
ese objeto se puede enviar a través de red, guardarlo en un fichero, y después reconstruirlo
al otra lado de la red, leerlo del fichero. Según la siguiente página web:
http://chuwiki.chuidiang.org/index.php?title=Serializaci%C3%B3n_de_objetos_en_java
visitada el 29/06/2013 nos dice:
Para que un objeto sea serializable basta con que implemente la interfaz Serializable.
Como la interfaz Serializable no tiene métodos, es muy sencillo implementarla, basta con
unimplements Serializable y nada más. Por ejemplo, la clase Datos siguiente
es Serializable y java sabe perfectamente enviarla o recibirla por red, a través de socket o
de rmi. También java sabe escribirla en un fichero o reconstruirla a partir del fichero.
public class Datos implements Serializable
{
public int a;
public String b;
public char c;
}
Si dentro de la clase hay atributos que son otras clases, éstos a su vez también deben
ser Serializable. Con los tipos de java (String, Integer, etc.) no hay problema porque lo son.
Si ponemos como atributos nuestras propias clases, éstas a su vez deben
implementar Serializable. Por ejemplo
/* Esta clase es Serializable porque implementa Serializable y todos sus
* campos son Serializable, incluido "Datos f;"
*/
public class DatoGordo implements Serializable
{
public int d;
public Integer e;
Datos f;
}
Serializacion a Medida
En realidad, se llama "serializar un objeto" al proceso de convertirlo a bytes, para poder
enviarlo por una red, y reconstruirlo luego a partir de esos bytes.
A veces podemos necesitar que se haga algo especial en el momento de serializarlo, bien
al construirlo a bytes, bien al recibirlo. Por ello java nos permite hacerlo. Basta con hacer
que nuestro objeto defina uno o los dos métodos siguientes:
private void readObject(java.io.ObjectInputStream stream)
throws IOException, ClassNotFoundException
{
// Aqui debemos leer los bytes de stream y reconstruir el objeto
}
private void writeObject(java.io.ObjectOutputStream stream)
throws IOException
{
// Aquí escribimos en stream los bytes que queramos que se envien por red.
}
Java llamará a estos métodos cuando necesite convertirlo a bytes para enviarlo por red o
cuando se necesite reconstruirlo a partir de los bytes en red.
Lectura de un Archivo en un Servidor de Internet
package com.chuidiang.ejemplos;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class PruebaHTTP {
public static void main(String[] args) {
try {
// Se abre la conexión
URL url = new URL("http://www.chuidiang.com");
URLConnection conexion = url.openConnection();
conexion.connect();
// Lectura
InputStream is = conexion.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
char[] buffer = new char[1000];
int leido;
while ((leido = br.read(buffer)) > 0) {
System.out.println(new String(buffer, 0, leido));
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
El código es sencillo. Se hace un new URL() con la URL en cuestión. Llamamos al
método openConnection() y luego connect(). Sólo queda obtener el InputStream de lectura
y leer en él como mejor nos venga para nuestras necesidades. En el ejemplo se va leyendo
en buffer de caracteres y sacándolo por pantalla, por lo que se obtiene en pantalla el texto
html de la página cuya URL hemos abierto (suponiendo que esa URL tenga un texto html).
Este ejemplo se encuentra en la página web dispuesta a continuación visitada el
29/06/2013: http://chuwiki.chuidiang.org/index.php?title=Lectura_http_y_https_desde_java
Java Foundation Classes (JFC) y Java 2D
Según la pagina web: http://zarza.usal.es/~fgarcia/doc/tuto2/IV_1.htm visitada el
29/06/2013 nos dice:
Java Foundation Classes (JFC)
JFC es la abreviatura de Java Foundation Classes, que comprende un grupo de
características para ayudar a construir interfaces gráficos de usuario (GUIs). Se creo como
una extensión de AWT. Comprende las siguientes características:
o Componentes Swing.
o API de accesibilidad.
o Java 2D API
o Soporte de Drag and Drop.
Modelo de Eventos
Tanto AWT como Swing tienen en común un sistema para gestionar los eventos que se
producen al interactuar con el usuario de la interfaz gráfica; su modelo de eventos. El
funcionamiento del modelo de eventos se basa en la gestión de excepciones.
Para cada objeto que represente una interfaz gráfica, se pueden definir objetos "oyentes"
(Listener), que esperen a que suceda un determinado evento sobre la interfaz. Por ejemplo
se puede crear un objeto oyente que esté a la espera de que el usuario pulse sobre un botón
de la interfaz, y si esto sucede, él es avisado, ejecutando determinada acción.
La clase base para todos estos eventos que se pueden lanzar es la
clase AWTEvent (perteneciente al paquete java.awt). El modelo de eventos de AWT
depende del paquete java.awt.event, que en Swing se amplía con el
paquete javax.swing.event.
Existen dos tipos básicos de eventos:
o Físicos: Corresponden a un evento hardware claramente
identificable. Ejemplo: se ha pulsado una tecla (KeyStrokeEvent).
o Semánticos: Se componen de un conjunto de eventos físicos, que
sucedidos en un determinado orden tienen un significado más
abstracto: El usuario ha elegido un elemento de una lista desplegable
(ItemEvent).
Subpaquetes de AWT
A continuación se enumeran los paquetes que componen las JFC, así como su
funcionalidad, ordenados por orden de antigüedad. Esto es importante, porque debe de
tenerse en cuenta si se va a utilizar para crear applets, ya que normalmente los navegadores
no soportan la última versión de la API de Java en su propia máquina virtual.
Si se quiere que la applet se vea igual en varios navegadores, hay que tener en cuenta
qué paquetes se pueden utilizar y cuáles no, comprobando la versión de Java que soportan
los navegadores en los que van a trabajar.
Desde la Versión 1.0
o java.awt: Contiene todas las clases básicas de AWT para crear
interfaces e imprimir gráficos e imágenes, así como la clase base
para los eventos en componentes: AWTEvent.
o java.awt.image: Para crear y modificar imágenes. Utiliza productores
de imágenes, filtros y "consumidores de imágenes". Permite
renderizar una imagen mientras está siendo generada.
Desde la Versión 1.1
o java.awt.datatransfer: Transferencia de datos entre aplicaciones.
Permite definir clases "transferibles" entre aplicaciones, y da soporte
al mecanismo del portapapeles (copiar y pegar).
o java.awt.event: Modelo de eventos de AWT. Contiene eventos,
oyentes y adaptadores a oyentes.
Desde la Versión 1.2
o java.awt.color: Utilización de colores. Contiene la implementación
de una paleta de colores basada en la especificada por el ICC
(Consorcio Internacional de Color).
o java.awt.dnd: Operaciones de arrastrar y soltar.
o java.awt.font: Todo lo referente a las fuentes de texto. Soporta
fuentes del tipo True Type, Type 1, Type 1 Multiple Master, y
OpenType.
o java.awt.geom: Aporta clases de Java 2D, para crear objetos en 2
dimensiones, utilizando geometría plana (elipses, curvas, áreas).
o java.awt.im: Para utilizar símbolos Japoneses, Chinos o Coreanos.
o java.awt.image.renderable: Para producir imágenes que
sean independientes de redering (animación).
o java.awt.print: Para imprimir documentos. Incorpora capacidad para
gestionar diversos tipos de documentos, formatos de página e
interactuar con el usuario para controlar la impresión de trabajos.
Java 2D
Java2D es una de las APIs (Application Program Interface) más ricas que proporciona la
edición estándar de Java (J2SE). Java 2D aborda 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.
Cada uno de los conceptos necesarios se introduce desde cero, aunque se suponen
conocimientos del lenguaje Java, y se proporcionan numerosos ejemplos completos que
pueden ser puestos en práctica sin más modificación que la de elegir la foto preferida que se
desea transformar, o modificar la cadena de texto a visualizar. Cada ejemplo se acompaña
de una adecuada explicación sobre las líneas de código vitales que producen el efecto que
se desea conseguir en cada caso, por lo que al lector le resultará muy cómodo realizar
modificaciones personalizadas y obtener sus propios resultados. La inclusión de las
imágenes que resultan de cada uno de los ejemplos comentados también ayuda
enormemente a la comprensión del código y facilita la asimilación de conceptos.
Java Media Framework (JMF)
Según la pagina web: http://blogdejuls.blogspot.com/2007/04/java-media-framework.html
visitada el 29/06/2013 nos dice: JMF es una API que sirve para incluir multimedia en las
aplicaciones de Java, funciona básicamente, recibiendo el contenido multimedia de alguna
fuente, para después procesarlo y entregarlo en alguna salida multimedia.
Para entender mejor la arquitectura
que es muy ilustrativa y ayuda a comprender mejor esta API.
La videocámara y el casete de video que se muestran en esta imagen, como fuente de
multimedia bien podría ser un archivo mpg
son una televisión y unas bocinas que serian la applet en el cual se van a
contenidos multimedia. Lo único que
mas sencilla de poner un reprod
Instanciamos un Media Player, asi:
MediaPlayer player = new javax.media.bean.playerbean.MediaPlayer():
Para entender mejor la arquitectura de JMF en la página de Java muestran esta image
ayuda a comprender mejor esta API.
La videocámara y el casete de video que se muestran en esta imagen, como fuente de
multimedia bien podría ser un archivo mpg y los dispositivos de salida que en la imagen
ión y unas bocinas que serian la applet en el cual se van a
os multimedia. Lo único que haría falta entonces seria el reproductor.
poner un reproductor en la applet es utilizando el MediaPlayer Bean.
tanciamos un Media Player, asi:
player = new javax.media.bean.playerbean.MediaPlayer():
muestran esta imagen,
La videocámara y el casete de video que se muestran en esta imagen, como fuente de
y los dispositivos de salida que en la imagen
ión y unas bocinas que serian la applet en el cual se van a presentar los
entonces seria el reproductor. La manera
tilizando el MediaPlayer Bean.
player = new javax.media.bean.playerbean.MediaPlayer():
Para decirle al player que archivo queremos reproducir se utiliza la siguiente linea:
player.setMediaLocation (dirección del archivo);
Para iniciar, detener o pausar la reproducción, se usan las siguientes líneas
respectivamente:
player.start();
player.close();
player.stop();
Java 3D
Según la pagina web: http://www.programacion.com/articulo/java_3d_169 visitada el
29/06/2013 nos dice: 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
renderizado. 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 ambos.
Java Beans
Según la pagina web: http://www.slideshare.net/BorisSalleg/java-beans-en-jsp visitada
el 29/06/2013 nos dice: Los JavaBeans son un modelo de componentes creado por Sun
Microsystems para la construcción de aplicaciones en Java. Se usan para encapsular varios
objetos en un único objeto (Bean en inglés), para hacer uso de un solo objeto en lugar de
varios más simples.
La especificación de JavaBeans de Sun Microsystems los define como "componentes de
software reutilizables que se puedan manipular visualmente en una herramienta de
construcción". A pesar de haber muchas semejanzas, los JavaBeans no deben confundirse
con los Enterprise JavaBeans (EJB), una tecnología de componentes del lado servidor que
es parte de Java EE.
Para funcionar como una clase JavaBean, una clase debe obedecer ciertas convenciones
sobre nomenclatura de métodos, construcción y comportamiento. Estas convenciones
permiten tener herramientas que puedan utilizar, reutilizar, sustituir y conectar JavaBeans.
Las convenciones requeridas son:
o Debe tener un constructor sin argumentos.
o Sus propiedades deben ser accesibles mediante métodos get y set que
siguen una convención de nomenclatura estándar.
o Debe ser serializable.
Dentro de un JavaBean podemos distinguir tres partes:
o Propiedades: Los atributos que contiene.
o Métodos: Se establecen los métodos get y set para acceder y modificar
los atributos.
o Eventos: Permiten comunicar con otros JavaBeans.
RMI y JAVA IDL
Según la pagina web: http://es.scribd.com/doc/51830722/206/RMI-Y-JAVA-IDL visitada
el 29/06/2013 nos dice: Tanto RMI (remote method invocation) como JAVA IDL (java
interface definition language) son herramientas para desarrollar aplicaciones distribuidas.
Estas aplicaciones presentan la característica, de que una aplicación puede
ejecutar funciones y métodos en varios ordenadores distintos. Utilizando una referencia a
un objeto que se encuentra en un ordenador remoto, es 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. Son por lo tanto tecnologías que permiten la
creación y uso de objetos distribuidos, esto es, objetos o programas que interactúan en
diferentes plataformas y ordenadores a través de una red.
RMI es una solución basada íntegramente en java. Incorpora métodos para localizar los
objetos remotos, comunicarse con ellos e incluso enviar un objeto de java, "por valor", de
un objeto distribuido a otro.java IDL permite la conectividad entre objetos distribuidos
utilizando corba (common object request broker architecture). Corba es un estándar para la
interconexión entre objetos distribuidos. Existen implementaciones de corba en varios
lenguajes, lo que posibilita comunicar objetos realizados en distintos lenguajes como Java,
C/C++, Cobol, tanto RMI como Java IDL están incluidos en el JDK 1.2 de sun. En el caso
de Java IDL se precisa de una utilidad adicional (llamada IDLTOJava) que genera el código
necesario para comunicarse con cualquier implementación corba.
Java ative Interface (J I)
Según la pagina web: http://homepage.cs.uiowa.edu/~slonnegr/wpj/JNI.pdf visitada el
29/06/2013 nos dice: 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;
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. 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
El lenguaje de programación Java, permite el desarrollo de aplicaciones bajo el esquema
de Cliente Servidor, como de aplicaciones distribuidas, lo que lo hace capaz de conectar
dos o más computadoras u ordenadores, ejecutando tareas simultáneamente, y de esta forma
logra distribuir el trabajo a realizar.
Java es un lenguaje interpretado, y esto es lo que permite que los programas Java puedan
ser ejecutados en una gran variedad de entornos.
Una vez que existe el programa intérprete para un sistema dado, cualquier programa
Java puede ejecutarse en esa plataforma.
Un applet Java es un programa diseñado para ser transmitido a través de Internet o de
una Intranet, desde un servidor web a un cliente, y ser ejecutado en un navegador web
compatible con Java.
Los applets Java no presentan problemas de seguridad, pues su ejecución se realiza
dentro del entorno del navegador.
Estos applets no son simples ficheros de imagen, sonido o animación, sino que son
verdaderos programas, que pueden reaccionar ante las acciones del usuario y cambiar
dinámicamente, no sólo ejecutar repetidamente la misma animación.
En resumen cualquier tipo de aplicación se puede realizar con ella. Java permite la
modularidad por lo que se pueden hacer rutinas individuales que sean usadas por más de
una aplicación.
Sin duda alguna uno de los mejores lenguajes de programación en la actualidad y con
una gran cantidad de aplicaciones informáticas que pueden ser usadas en distintas ramas de
la ciencia y tecnología.
Referencias Electrónicas
http://www.ciberaula.com/articulo/java_io
http://chuwiki.chuidiang.org
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/archivos/teclado.
htm españa 2013
http://es.scribd.com/doc/13562650/130/Lectura-y-Escritura-de-Archivos-II
http://chuwiki.chuidiang.org/index.php?title=Serializaci%C3%B3n_de_obje
tos_en_java
http://chuwiki.chuidiang.org/index.php?title=Lectura_http_y_https_desde_java
http://zarza.usal.es/~fgarcia/doc/tuto2/IV_1.htm españa 2013
http://blogdejuls.blogspot.com/2007/04/java-media-framework.html
http://www.programacion.com/articulo/java_3d_169
http://www.slideshare.net/BorisSalleg/java-beans-en-jsp
http://es.scribd.com/doc/51830722/206/RMI-Y-JAVA-IDL
http://homepage.cs.uiowa.edu/~slonnegr/wpj/JNI.pdf

Mais conteúdo relacionado

Mais procurados

Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de DatosMaJo2308
 
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosPortafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosHumano Terricola
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador ADOLFOISAIASGARCIASI
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasRaul
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosLuis Dario Gomez
 
4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivos4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivosJesus Garcia
 
Sistemas operativos ciclo 2 - capítulo 3
Sistemas operativos   ciclo 2 - capítulo 3Sistemas operativos   ciclo 2 - capítulo 3
Sistemas operativos ciclo 2 - capítulo 3Ing. Alexis Rocha, MGTI
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datospepelebu1313
 

Mais procurados (20)

Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitosPortafolio lenguajes y automatas unidad 3 - Autómatas finitos
Portafolio lenguajes y automatas unidad 3 - Autómatas finitos
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
colecciones en java
colecciones en javacolecciones en java
colecciones en java
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y Problemas
 
Ejemplos acid
Ejemplos acidEjemplos acid
Ejemplos acid
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Integridad de datos
Integridad de datosIntegridad de datos
Integridad de datos
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Heap sort
Heap sortHeap sort
Heap sort
 
4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivos4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivos
 
Sistemas operativos ciclo 2 - capítulo 3
Sistemas operativos   ciclo 2 - capítulo 3Sistemas operativos   ciclo 2 - capítulo 3
Sistemas operativos ciclo 2 - capítulo 3
 
5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx
 
Python Pilas y Colas
Python Pilas y ColasPython Pilas y Colas
Python Pilas y Colas
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 

Destaque

Teoria de informacion Mapa Conceptual
Teoria de informacion Mapa Conceptual Teoria de informacion Mapa Conceptual
Teoria de informacion Mapa Conceptual Daylenis Isamar Ramos
 
Electiva iii microprocesadores
Electiva iii microprocesadoresElectiva iii microprocesadores
Electiva iii microprocesadoresWilfredy Inciarte
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Manuel programacion no numerica ii
Manuel programacion no numerica iiManuel programacion no numerica ii
Manuel programacion no numerica iiManuel Teran
 
Electiva v (diseño y evaluacion de proyectos)
Electiva v (diseño y evaluacion de proyectos)Electiva v (diseño y evaluacion de proyectos)
Electiva v (diseño y evaluacion de proyectos)Wilfredy Inciarte
 
Sistemas De Informacion
Sistemas De InformacionSistemas De Informacion
Sistemas De Informacionmmiutirla
 
Organizacion del computador
Organizacion del computadorOrganizacion del computador
Organizacion del computadorBrayan Seba
 
Ciclo de Vida de los Sistemas
Ciclo de Vida de los SistemasCiclo de Vida de los Sistemas
Ciclo de Vida de los Sistemasmmiutirla
 
Sistema I y su relación con crioaglutininas, banco de sangre.
Sistema I y su relación con crioaglutininas, banco de sangre.Sistema I y su relación con crioaglutininas, banco de sangre.
Sistema I y su relación con crioaglutininas, banco de sangre.Alejandra Diaz Saldaño
 
327 introducción a la ingenieria de sistemas (1er libro)
327   introducción a la ingenieria de sistemas (1er libro)327   introducción a la ingenieria de sistemas (1er libro)
327 introducción a la ingenieria de sistemas (1er libro)rbrosabelen
 
Ética: Deontología profesional y ética profesional
Ética: Deontología profesional y ética profesionalÉtica: Deontología profesional y ética profesional
Ética: Deontología profesional y ética profesionalFernando_A
 
Levantamiento De Información
Levantamiento De InformaciónLevantamiento De Información
Levantamiento De Informaciónmmiutirla
 
Componentes de curriculo
Componentes de curriculoComponentes de curriculo
Componentes de curriculoAnnita Chavez
 
Romergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica iiRomergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica iiROMERGOMEZ
 
Organización del computador
Organización del computadorOrganización del computador
Organización del computadorIsrael Rey
 

Destaque (20)

trabajo pharo
trabajo pharotrabajo pharo
trabajo pharo
 
Teoria de informacion Mapa Conceptual
Teoria de informacion Mapa Conceptual Teoria de informacion Mapa Conceptual
Teoria de informacion Mapa Conceptual
 
Electiva iii microprocesadores
Electiva iii microprocesadoresElectiva iii microprocesadores
Electiva iii microprocesadores
 
Electiva vi robotica
Electiva vi roboticaElectiva vi robotica
Electiva vi robotica
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Manuel programacion no numerica ii
Manuel programacion no numerica iiManuel programacion no numerica ii
Manuel programacion no numerica ii
 
Electiva v (diseño y evaluacion de proyectos)
Electiva v (diseño y evaluacion de proyectos)Electiva v (diseño y evaluacion de proyectos)
Electiva v (diseño y evaluacion de proyectos)
 
Simulacion digital
Simulacion digitalSimulacion digital
Simulacion digital
 
Sistemas De Informacion
Sistemas De InformacionSistemas De Informacion
Sistemas De Informacion
 
Organizacion del computador
Organizacion del computadorOrganizacion del computador
Organizacion del computador
 
Ciclo de Vida de los Sistemas
Ciclo de Vida de los SistemasCiclo de Vida de los Sistemas
Ciclo de Vida de los Sistemas
 
Organizacion de un computador
Organizacion de un computadorOrganizacion de un computador
Organizacion de un computador
 
Sistema I y su relación con crioaglutininas, banco de sangre.
Sistema I y su relación con crioaglutininas, banco de sangre.Sistema I y su relación con crioaglutininas, banco de sangre.
Sistema I y su relación con crioaglutininas, banco de sangre.
 
327 introducción a la ingenieria de sistemas (1er libro)
327   introducción a la ingenieria de sistemas (1er libro)327   introducción a la ingenieria de sistemas (1er libro)
327 introducción a la ingenieria de sistemas (1er libro)
 
Ética: Deontología profesional y ética profesional
Ética: Deontología profesional y ética profesionalÉtica: Deontología profesional y ética profesional
Ética: Deontología profesional y ética profesional
 
Levantamiento De Información
Levantamiento De InformaciónLevantamiento De Información
Levantamiento De Información
 
Componentes de curriculo
Componentes de curriculoComponentes de curriculo
Componentes de curriculo
 
Romergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica iiRomergomez18674044, programacion no numerica ii
Romergomez18674044, programacion no numerica ii
 
Organización del computador
Organización del computadorOrganización del computador
Organización del computador
 
Electiva IV
Electiva IVElectiva IV
Electiva IV
 

Semelhante a Programacion no numerica ii

Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Presentacion carlos
Presentacion carlosPresentacion carlos
Presentacion carlosKarlytozdj
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en javarsalazar16988
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)GENEDURAN
 
No numerica ii
No numerica iiNo numerica ii
No numerica iiJ_cordero
 
Presentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaPresentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaLuisFeSilva
 
Jesus cardona presentacion no numerica 2_java
Jesus cardona presentacion no numerica 2_javaJesus cardona presentacion no numerica 2_java
Jesus cardona presentacion no numerica 2_javajessancardona
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica iiCarlos Ordaz
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos en Javakunno10
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasAnel Sosa
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POOsena
 

Semelhante a Programacion no numerica ii (20)

Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Java
JavaJava
Java
 
Presentacion carlos
Presentacion carlosPresentacion carlos
Presentacion carlos
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en java
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)
 
No numerica ii
No numerica iiNo numerica ii
No numerica ii
 
Presentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaPresentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones java
 
Jesus cardona presentacion no numerica 2_java
Jesus cardona presentacion no numerica 2_javaJesus cardona presentacion no numerica 2_java
Jesus cardona presentacion no numerica 2_java
 
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
 
Java
JavaJava
Java
 
Entrada y Salida de datos en Java
Entrada y Salida de datos en JavaEntrada y Salida de datos en Java
Entrada y Salida de datos en Java
 
Java
JavaJava
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
 
Java - No numérica - II
Java - No numérica - IIJava - No numérica - II
Java - No numérica - II
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 

Programacion no numerica ii

  • 1. Instituto Universitario Politécnico Santiago Mariño Escuela de Ingeniería de Sistemas Porlamar-Estado Nueva Esparta Programación No Numérica II APLICACIONES JAVA. Realizado Por: BR. Rolman Calderín/ C.I: 19682811 Saia – Profesor: Diógenes Rodriguez Porlamar, Junio de 2013 Instituto Universitario Politécnico Santiago Mariño Realizado Por: BR. Rolman Calderín/ C.I: 19682811 Profesor: Diógenes Rodriguez.
  • 2. Introducción Java es relativamente un nuevo lenguaje de programación debido a los continuos cambios, la API (application programming interface) java incorpora muchos aspectos que en cualquier otro lenguaje son extensiones, threads, ejecución remota, componentes, seguridad, acceso a bases de datos, entre otros. Por eso es un lenguaje ideal para aprender, porque incorpora todos estos conceptos de un modo estándar, mucho más sencillo y claro que con las citadas extensiones de otros lenguajes. El lenguaje java posee varios atributos dentro de ello podemos destacar que es un lenguaje simple, esta orientado a objetos, es robusto, seguro, de arquitectura neutra, multitarea, dinámico, entre muchas otras buenas cualidades. Los programas desarrollados en Java presentan diversas ventajas frente a otros lenguajes, en lo que podemos destacar que posee una ejecución como aplicación independiente, ejecución como Applet, ejecución como Servlet, ente otros. Las Applets en Java cumplen una gran funcionalidad y fue pensado para ser colocados dentro de una página web. Estos pueden ser interpretados por cualquier navegador con capacidades Java. Estos programas se insertan en las páginas usando una etiqueta especial, como también se insertan vídeos, animaciones flash u otros objetos. Hoy día mediante applets se pueden integrar en las páginas web aplicaciones multimedia avanzadas, incluso con imágenes 3D o sonido y vídeo de alta calidad.
  • 3. Entrada y Salida de Datos en Java Según la pagina web: http://www.ciberaula.com/articulo/java_io nos dice: Cualquier programa realizado en Java que necesite llevar a cabo una operación de I/O lo hará a través de un stream. Un stream, cuya traducción literal es "flujo", es una abstracción de todo aquello que produzca o consuma información. Podemos ver a este stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace el sistema de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues las clases y métodos de I/O que se necesita dispositivo con el que se este con el teclado, el monitor, un sistema de ficheros o un socket de red liberando a nuestro código de tener que saber con quién está interactuando. Para traer la información, un programa abr (un fichero, memoria, un socket) y lee la información seriamente, de esta forma: Similarmente, un programa puede enviar información a un destino externo abriendo un stream sobre un destino y escribiendo la Entrada y Salida de Datos en Java http://www.ciberaula.com/articulo/java_io visitada el 29/06/2013 Cualquier programa realizado en Java que necesite llevar a cabo una operación de vés de un stream. Un stream, cuya traducción literal es "flujo", es una abstracción de todo aquello que produzca o consuma información. Podemos ver a este stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace a de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues y métodos de I/O que se necesita emplear son las mismas independientemente de dispositivo con el que se este actuando, luego, el núcleo de Java, sabrá si tiene que tratar con el teclado, el monitor, un sistema de ficheros o un socket de red liberando a nuestro código de tener que saber con quién está interactuando. Para traer la información, un programa abre un stream sobre una fuente de información (un fichero, memoria, un socket) y lee la información seriamente, de esta forma: Similarmente, un programa puede enviar información a un destino externo abriendo un stream sobre un destino y escribiendo la información seriamente, de esta forma: visitada el 29/06/2013 Cualquier programa realizado en Java que necesite llevar a cabo una operación de vés de un stream. Un stream, cuya traducción literal es "flujo", es una abstracción de todo aquello que produzca o consuma información. Podemos ver a este stream como una entidad lógica. La vinculación de este stream al dispositivo físico la hace a de entrada y salida de Java. Se ve pues la eficacia de esta implementación pues emplear son las mismas independientemente del actuando, luego, el núcleo de Java, sabrá si tiene que tratar con el teclado, el monitor, un sistema de ficheros o un socket de red liberando a nuestro e un stream sobre una fuente de información (un fichero, memoria, un socket) y lee la información seriamente, de esta forma: Similarmente, un programa puede enviar información a un destino externo abriendo un información seriamente, de esta forma:
  • 4. Byte streams: nos proporciona un medio adecuado para el manejo de entradas y salidas de bytes y su uso lógicamente está orientado a la lectura y escritura de datos binarios. El tratamiento del flujo de bytes v InputStream y OutputStream. Cada una de estas clases abstractas concretas que controlan las diferencias ente los distintos dispositivos de I/O que se pueden utilizar. Así mismo, estas dos clases son las que definen los métodos que sus subclases tendrán implementados y, de entre todas, destacan las clases read() y write() que leen y escriben bytes de datos respectivamente. Character streams: Proporciona un medio conveniente para el manejo de entradas y salidas de caracteres. Dichos flujos usan codificación Unicode y, por tanto, se pueden internacionalizar. Una observación: Este es un modo que Java nos proporciona para manejar caracteres pero al nivel más bajo todas las operaciones de I/O son orientadas a byte. Al igual que la anterior el flujo de caracteres también viene gobernado por dos clases abstractas: Reader y Writer. Dichas clases manejan flujos de caracteres Unicode. Y también de ellas derivan subclases concretas que implementan los métodos definidos en ellas siendo los más destacados los métodos read() y write() que, en este caso, leen y escriben caracteres de datos respectivamente. Un File es el único objeto del paquete de E/S que referencia a un archivo de disco real. La clase File no especifica cómo se recupera o almacena la información en los archivos; sólo describe las propiedades de un objeto archivo. os proporciona un medio adecuado para el manejo de entradas y salidas de bytes y su uso lógicamente está orientado a la lectura y escritura de datos binarios. El tratamiento del flujo de bytes viene gobernado por dos clases abstractas que son InputStream y OutputStream. Cada una de estas clases abstractas tienen varias subclases concretas que controlan las diferencias ente los distintos dispositivos de I/O que se pueden dos clases son las que definen los métodos que sus subclases tendrán implementados y, de entre todas, destacan las clases read() y write() que leen y escriben bytes de datos respectivamente. : Proporciona un medio conveniente para el manejo de entradas y salidas de caracteres. Dichos flujos usan codificación Unicode y, por tanto, se pueden internacionalizar. Una observación: Este es un modo que Java nos proporciona para al nivel más bajo todas las operaciones de I/O son orientadas a byte. Al igual que la anterior el flujo de caracteres también viene gobernado por dos clases abstractas: Reader y Writer. Dichas clases manejan flujos de caracteres Unicode. Y también s derivan subclases concretas que implementan los métodos definidos en ellas siendo los más destacados los métodos read() y write() que, en este caso, leen y escriben caracteres es el único objeto del paquete de E/S que referencia a un archivo de disco real. La clase File no especifica cómo se recupera o almacena la información en los archivos; sólo describe las propiedades de un objeto archivo. os proporciona un medio adecuado para el manejo de entradas y salidas de bytes y su uso lógicamente está orientado a la lectura y escritura de datos binarios. El iene gobernado por dos clases abstractas que son varias subclases concretas que controlan las diferencias ente los distintos dispositivos de I/O que se pueden dos clases son las que definen los métodos que sus subclases tendrán implementados y, de entre todas, destacan las clases read() y write() que leen y : Proporciona un medio conveniente para el manejo de entradas y salidas de caracteres. Dichos flujos usan codificación Unicode y, por tanto, se pueden internacionalizar. Una observación: Este es un modo que Java nos proporciona para al nivel más bajo todas las operaciones de I/O son orientadas a byte. Al igual que la anterior el flujo de caracteres también viene gobernado por dos clases abstractas: Reader y Writer. Dichas clases manejan flujos de caracteres Unicode. Y también s derivan subclases concretas que implementan los métodos definidos en ellas siendo los más destacados los métodos read() y write() que, en este caso, leen y escriben caracteres es el único objeto del paquete de E/S que referencia a un archivo de disco real. La clase File no especifica cómo se recupera o almacena la información en los archivos;
  • 5. Los archivos son un origen y un destino primario de los datos dentro de la mayoría de los programas. A pesar de que se les imponente restricciones severas cuando se utilizan dentro de applets, los archivos siguen siendo un recurso básico para almacenar información persistente y compartida. Los objetos archivo se pueden crear utilizando uno de los tres constructores disponibles. El ejemplo siguiente crea tres archivos: f1, f2 y f3. El primer objeto File se construye utilizando un trayecto de directorio como único argumento. El segundo se crea utilizando dos argumentos, el trayecto y el nombre de archivo. El tercero se crea utilizando el trayecto de archivo asignado a f1 y un nombre de archivo; f3 refiere al mismo archivo que f2. File f1 = new File(&quot;/&quot;); File f2 = new File(&quot;/&quot;,&quot;autoexec.bat&quot;); File f3 = new File(f1, &quot;autoexec.bat&quot;); InputStream InputStream es una clase abstracta que define el modelo de Java para el flujo de entrada. Todos los métodos de esta clase lanzarán una IOException si se producen condiciones de error. Este es un breve resumen de los métodos de InputStream: read() devuelve una representación como entero del siguiente byte de entrada disponible. Read (byte[]) intenta leer hasta b.length bytes situándolos en b y devuelve el número real de bytes que se leyeron con éxito. read(byte b[], int off, int len) intenta leer hasta len bytes situándolos en b comenzando en b[off], y devuelve el número de bytes que se leyeron con éxito. skip(long n) omite n bytes de la entrada, y devuelve el número de bytes que se han omitido. available() devuelve el número de bytes de entrada disponibles actualmente para su lectura.
  • 6. close() cierra el origen de entrada. Los intentos de lectura posteriores generarán una IOException. mark(int limitelectura) coloca una marca en el punto actual del flujo de entrada que seguirá siendo válida hasta que se lean limitelectura bytes. reset() devuelve el puntero de entrada ala marca establecida previamente. markSupported() devuelve true si se admiten mark/reset en este flujo. OutputStream Igual que InputStream, OutputStream es una clase abstracta que define el flujo de salida. Todos los métodos de esta clase devuelven un valor void y lanzan una IOException en caso de error. Esta es una lista de los métodos de OutputStream: write (int b) escribe un único byte en un flujo de salida. Observar que el parámetro en un int, lo que permite que se llame a write con expresiones sin tener que convertir su tipo a byte. Write (byte b[]) escribe una matriz completa de bytes en un flujo de salida. Write (byte b[], int off, int len) escribe len bytes de la matriz b, comenzando a partir de b[off]. flush() inicializa el estado de la salida de manera que se limpian todos los buffers. Close () cierra el flujo de salida. Los intentos de escritura posteriores generarán una IOException. Clases de Java Para Lectura y Escritura de Datos Según la pagina web: http://chuwiki.chuidiang.org visitada el 29/06/2013 nos dice: Una clase es una agrupación de datos (variables o campos) y de funciones (métodos) que operan sobre esos datos. A estos datos y funciones pertenecientes a una clase se les denomina variables, métodos o funciones miembro. La programación orientada a objetos se basa en la programación de clases. Un programa se construye a partir de un conjunto de clases. Una vez definida e implementada una clase, es posible declarar elementos de esta clase de modo similar a como se declaran las variables del lenguaje (int,double, string). Los elementos declarados de una clase se denominan objetos de la clase. De una única clase se pueden
  • 7. declarar o crear numerosos objetos. La clase es lo genérico: es el patrón o modelo para crear objetos. Cada objeto tiene sus propias copias de las variables miembro, con sus propios valores, en general distintos de los demás objetos de la clase. Las clases pueden tener variables static, que son propias de la clase y no de cada objeto. Podemos abrir un fichero de texto para leer usando la clase FileReader. Esta clase 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, se puede construir un BufferedReader a partir del FileReader de la siguiente forma: 1 2 3 4 5 File archivo = new File ("C:archivo.txt"); FileReader fr = new FileReader (archivo); BufferedReader br = new BufferedReader(fr); ... String linea = br.readLine(); El siguiente código escribe un fichero de texto desde cero. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.io.*; public class EscribeFichero { public static void main(String[] args) { FileWriter fichero = null; PrintWriter pw = null; try { fichero = new FileWriter("c:/prueba.txt"); pw = new PrintWriter(fichero); for (int i = 0; i < 10; i++) pw.println("Linea " + i); } catch (Exception e) {
  • 8. 18 19 20 21 22 23 24 25 26 27 28 29 30 e.printStackTrace(); } finally { try { // Nuevamente aprovechamos el finally para // asegurarnos que se cierra el fichero. if (null != fichero) fichero.close(); } catch (Exception e2) { e2.printStackTrace(); } } } } Si se quiere añadir al final de un fichero ya existente, simplemente se debe colocar un flag a true como segundo parámetro del constructor de FileWriter. FileWriter fichero = new FileWriter("c:/prueba.txt",true); Entrada y Salida Estándar (Teclado y Pantalla) Según http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/archivos/teclado.htm esta pagina web visitada el 29/06/2013 nos dice: 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 clase System 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) { }
  • 9. 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 se escribe: 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 soninsert 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. Existe la posibilidad de conectar el objeto System.in con un objeto de la clase InputStreamReader para leer los caracteres tecleados por el usuario. Esta conexión se realiza mediante la sentencia: Reader entrada = new InputStreamReader(System.in); Para leer una sucesión de caracteres se emplea un código similar StringBuffer str=new StringBuffer();
  • 10. char c; try{ Reader entrada=new InputStreamReader(System.in); while ((c=(char)entrada.read())!='n'){ str.append(c); } }catch(IOException ex){} Para imprimir los caracteres leídos se escribe como en la sección anterior: System.out.println(str); Podemos usar la segunda versión de la función read para leer el conjunto de caracteres tecleados por el usuario. char[] buffer=new char[255]; try{ Reader entrada=new InputStreamReader(System.in); int numBytes=entrada.read(buffer); System.out.println("Número de bytes leídos "+numBytes); }catch(IOException ex){ } En esta segunda porción de código, se lee un conjunto de caracteres hasta que se pulsa la tecla Retorno, los caracteres se guardan en el array buffer. La función read devuelve el número de caracteres leídos. Para imprimir los caracteres leídos se crea un objeto str de la clase String a partir de un array de caracteres buffer, empleando uno de los constructores de dicha clase. A continuación, se imprime el string str. String str=new String(buffer); System.out.println(str);
  • 11. Lectura y Escritura de Archivos Según la pagina web: http://es.scribd.com/doc/13562650/130/Lectura-y-Escritura-de- Archivos-II visitada el 29/06/2013 nos dice: Las clases FileInputStream y FileOutputStream permiten leer y escribir bytes en archivos binarios. Las clases FileReader y FileWriter permiten leer y escribir caracteres en archivos de texto. Cada llamada a read() o write() accede al disco para un único byte o un único carácter ⇒ poco eficiente. Para mejorarlo, se utilizan las clases que implementan un buffer, de modo que se lee del disco (o se escribe) un conjunto de bytes o caracteres en cada acceso. En la lectura, los constructores de FileInputStream y FileReader, si no encuentran el archivo indicado, pueden lanzar la excepción FileNotFoundException. En la escritura, los constructores de FileOutputStream y FileWriter pueden lanzar la excepción IOException. Si no se encuentra el archivo dado, se crea nuevo. Si ya existe, por defecto escribe desde el comienzo; pero se puede indicar que añada al final (con un 2ºparámetro true). FileInputStream fis = n e w F i l e I n p u t S t r e a m ( “ f i c h . b i n ” ) ; BufferedInputStream bis = new BufferedInputStream (fis); i n t b = b i s . r e a d ( ) ; / / l e e u n s ó l o byte, pero llena //el buffer de datos para //próximas lectura Serialización Serialización de un Objeto: Implementar Serializable Para que un programa java pueda convertir un objeto en un montón de bytes y pueda luego recuperarlo, el objeto necesita ser Serializable. Al poder convertir el objeto a bytes, ese objeto se puede enviar a través de red, guardarlo en un fichero, y después reconstruirlo al otra lado de la red, leerlo del fichero. Según la siguiente página web: http://chuwiki.chuidiang.org/index.php?title=Serializaci%C3%B3n_de_objetos_en_java visitada el 29/06/2013 nos dice: Para que un objeto sea serializable basta con que implemente la interfaz Serializable. Como la interfaz Serializable no tiene métodos, es muy sencillo implementarla, basta con
  • 12. unimplements Serializable y nada más. Por ejemplo, la clase Datos siguiente es Serializable y java sabe perfectamente enviarla o recibirla por red, a través de socket o de rmi. También java sabe escribirla en un fichero o reconstruirla a partir del fichero. public class Datos implements Serializable { public int a; public String b; public char c; } Si dentro de la clase hay atributos que son otras clases, éstos a su vez también deben ser Serializable. Con los tipos de java (String, Integer, etc.) no hay problema porque lo son. Si ponemos como atributos nuestras propias clases, éstas a su vez deben implementar Serializable. Por ejemplo /* Esta clase es Serializable porque implementa Serializable y todos sus * campos son Serializable, incluido "Datos f;" */ public class DatoGordo implements Serializable { public int d; public Integer e; Datos f; } Serializacion a Medida En realidad, se llama "serializar un objeto" al proceso de convertirlo a bytes, para poder enviarlo por una red, y reconstruirlo luego a partir de esos bytes. A veces podemos necesitar que se haga algo especial en el momento de serializarlo, bien al construirlo a bytes, bien al recibirlo. Por ello java nos permite hacerlo. Basta con hacer que nuestro objeto defina uno o los dos métodos siguientes: private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { // Aqui debemos leer los bytes de stream y reconstruir el objeto } private void writeObject(java.io.ObjectOutputStream stream)
  • 13. throws IOException { // Aquí escribimos en stream los bytes que queramos que se envien por red. } Java llamará a estos métodos cuando necesite convertirlo a bytes para enviarlo por red o cuando se necesite reconstruirlo a partir de los bytes en red. Lectura de un Archivo en un Servidor de Internet package com.chuidiang.ejemplos; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class PruebaHTTP { public static void main(String[] args) { try { // Se abre la conexión URL url = new URL("http://www.chuidiang.com"); URLConnection conexion = url.openConnection(); conexion.connect(); // Lectura InputStream is = conexion.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); char[] buffer = new char[1000]; int leido; while ((leido = br.read(buffer)) > 0) { System.out.println(new String(buffer, 0, leido)); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
  • 14. El código es sencillo. Se hace un new URL() con la URL en cuestión. Llamamos al método openConnection() y luego connect(). Sólo queda obtener el InputStream de lectura y leer en él como mejor nos venga para nuestras necesidades. En el ejemplo se va leyendo en buffer de caracteres y sacándolo por pantalla, por lo que se obtiene en pantalla el texto html de la página cuya URL hemos abierto (suponiendo que esa URL tenga un texto html). Este ejemplo se encuentra en la página web dispuesta a continuación visitada el 29/06/2013: http://chuwiki.chuidiang.org/index.php?title=Lectura_http_y_https_desde_java Java Foundation Classes (JFC) y Java 2D Según la pagina web: http://zarza.usal.es/~fgarcia/doc/tuto2/IV_1.htm visitada el 29/06/2013 nos dice: Java Foundation Classes (JFC) JFC es la abreviatura de Java Foundation Classes, que comprende un grupo de características para ayudar a construir interfaces gráficos de usuario (GUIs). Se creo como una extensión de AWT. Comprende las siguientes características: o Componentes Swing. o API de accesibilidad. o Java 2D API o Soporte de Drag and Drop. Modelo de Eventos Tanto AWT como Swing tienen en común un sistema para gestionar los eventos que se producen al interactuar con el usuario de la interfaz gráfica; su modelo de eventos. El funcionamiento del modelo de eventos se basa en la gestión de excepciones. Para cada objeto que represente una interfaz gráfica, se pueden definir objetos "oyentes" (Listener), que esperen a que suceda un determinado evento sobre la interfaz. Por ejemplo
  • 15. se puede crear un objeto oyente que esté a la espera de que el usuario pulse sobre un botón de la interfaz, y si esto sucede, él es avisado, ejecutando determinada acción. La clase base para todos estos eventos que se pueden lanzar es la clase AWTEvent (perteneciente al paquete java.awt). El modelo de eventos de AWT depende del paquete java.awt.event, que en Swing se amplía con el paquete javax.swing.event. Existen dos tipos básicos de eventos: o Físicos: Corresponden a un evento hardware claramente identificable. Ejemplo: se ha pulsado una tecla (KeyStrokeEvent). o Semánticos: Se componen de un conjunto de eventos físicos, que sucedidos en un determinado orden tienen un significado más abstracto: El usuario ha elegido un elemento de una lista desplegable (ItemEvent). Subpaquetes de AWT A continuación se enumeran los paquetes que componen las JFC, así como su funcionalidad, ordenados por orden de antigüedad. Esto es importante, porque debe de tenerse en cuenta si se va a utilizar para crear applets, ya que normalmente los navegadores no soportan la última versión de la API de Java en su propia máquina virtual. Si se quiere que la applet se vea igual en varios navegadores, hay que tener en cuenta qué paquetes se pueden utilizar y cuáles no, comprobando la versión de Java que soportan los navegadores en los que van a trabajar. Desde la Versión 1.0 o java.awt: Contiene todas las clases básicas de AWT para crear interfaces e imprimir gráficos e imágenes, así como la clase base para los eventos en componentes: AWTEvent.
  • 16. o java.awt.image: Para crear y modificar imágenes. Utiliza productores de imágenes, filtros y "consumidores de imágenes". Permite renderizar una imagen mientras está siendo generada. Desde la Versión 1.1 o java.awt.datatransfer: Transferencia de datos entre aplicaciones. Permite definir clases "transferibles" entre aplicaciones, y da soporte al mecanismo del portapapeles (copiar y pegar). o java.awt.event: Modelo de eventos de AWT. Contiene eventos, oyentes y adaptadores a oyentes. Desde la Versión 1.2 o java.awt.color: Utilización de colores. Contiene la implementación de una paleta de colores basada en la especificada por el ICC (Consorcio Internacional de Color). o java.awt.dnd: Operaciones de arrastrar y soltar. o java.awt.font: Todo lo referente a las fuentes de texto. Soporta fuentes del tipo True Type, Type 1, Type 1 Multiple Master, y OpenType. o java.awt.geom: Aporta clases de Java 2D, para crear objetos en 2 dimensiones, utilizando geometría plana (elipses, curvas, áreas). o java.awt.im: Para utilizar símbolos Japoneses, Chinos o Coreanos. o java.awt.image.renderable: Para producir imágenes que sean independientes de redering (animación). o java.awt.print: Para imprimir documentos. Incorpora capacidad para gestionar diversos tipos de documentos, formatos de página e interactuar con el usuario para controlar la impresión de trabajos. Java 2D Java2D es una de las APIs (Application Program Interface) más ricas que proporciona la edición estándar de Java (J2SE). Java 2D aborda tres áreas principales que integran Java2D:
  • 17. 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. Cada uno de los conceptos necesarios se introduce desde cero, aunque se suponen conocimientos del lenguaje Java, y se proporcionan numerosos ejemplos completos que pueden ser puestos en práctica sin más modificación que la de elegir la foto preferida que se desea transformar, o modificar la cadena de texto a visualizar. Cada ejemplo se acompaña de una adecuada explicación sobre las líneas de código vitales que producen el efecto que se desea conseguir en cada caso, por lo que al lector le resultará muy cómodo realizar modificaciones personalizadas y obtener sus propios resultados. La inclusión de las imágenes que resultan de cada uno de los ejemplos comentados también ayuda enormemente a la comprensión del código y facilita la asimilación de conceptos. Java Media Framework (JMF) Según la pagina web: http://blogdejuls.blogspot.com/2007/04/java-media-framework.html visitada el 29/06/2013 nos dice: JMF es una API que sirve para incluir multimedia en las aplicaciones de Java, funciona básicamente, recibiendo el contenido multimedia de alguna fuente, para después procesarlo y entregarlo en alguna salida multimedia.
  • 18. Para entender mejor la arquitectura que es muy ilustrativa y ayuda a comprender mejor esta API. La videocámara y el casete de video que se muestran en esta imagen, como fuente de multimedia bien podría ser un archivo mpg son una televisión y unas bocinas que serian la applet en el cual se van a contenidos multimedia. Lo único que mas sencilla de poner un reprod Instanciamos un Media Player, asi: MediaPlayer player = new javax.media.bean.playerbean.MediaPlayer(): Para entender mejor la arquitectura de JMF en la página de Java muestran esta image ayuda a comprender mejor esta API. La videocámara y el casete de video que se muestran en esta imagen, como fuente de multimedia bien podría ser un archivo mpg y los dispositivos de salida que en la imagen ión y unas bocinas que serian la applet en el cual se van a os multimedia. Lo único que haría falta entonces seria el reproductor. poner un reproductor en la applet es utilizando el MediaPlayer Bean. tanciamos un Media Player, asi: player = new javax.media.bean.playerbean.MediaPlayer(): muestran esta imagen, La videocámara y el casete de video que se muestran en esta imagen, como fuente de y los dispositivos de salida que en la imagen ión y unas bocinas que serian la applet en el cual se van a presentar los entonces seria el reproductor. La manera tilizando el MediaPlayer Bean. player = new javax.media.bean.playerbean.MediaPlayer():
  • 19. Para decirle al player que archivo queremos reproducir se utiliza la siguiente linea: player.setMediaLocation (dirección del archivo); Para iniciar, detener o pausar la reproducción, se usan las siguientes líneas respectivamente: player.start(); player.close(); player.stop(); Java 3D Según la pagina web: http://www.programacion.com/articulo/java_3d_169 visitada el 29/06/2013 nos dice: 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 renderizado. 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.
  • 20. 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 ambos. Java Beans Según la pagina web: http://www.slideshare.net/BorisSalleg/java-beans-en-jsp visitada el 29/06/2013 nos dice: Los JavaBeans son un modelo de componentes creado por Sun Microsystems para la construcción de aplicaciones en Java. Se usan para encapsular varios objetos en un único objeto (Bean en inglés), para hacer uso de un solo objeto en lugar de varios más simples. La especificación de JavaBeans de Sun Microsystems los define como "componentes de software reutilizables que se puedan manipular visualmente en una herramienta de construcción". A pesar de haber muchas semejanzas, los JavaBeans no deben confundirse con los Enterprise JavaBeans (EJB), una tecnología de componentes del lado servidor que es parte de Java EE. Para funcionar como una clase JavaBean, una clase debe obedecer ciertas convenciones sobre nomenclatura de métodos, construcción y comportamiento. Estas convenciones permiten tener herramientas que puedan utilizar, reutilizar, sustituir y conectar JavaBeans. Las convenciones requeridas son: o Debe tener un constructor sin argumentos. o Sus propiedades deben ser accesibles mediante métodos get y set que siguen una convención de nomenclatura estándar. o Debe ser serializable. Dentro de un JavaBean podemos distinguir tres partes: o Propiedades: Los atributos que contiene. o Métodos: Se establecen los métodos get y set para acceder y modificar los atributos. o Eventos: Permiten comunicar con otros JavaBeans.
  • 21. RMI y JAVA IDL Según la pagina web: http://es.scribd.com/doc/51830722/206/RMI-Y-JAVA-IDL visitada el 29/06/2013 nos dice: Tanto RMI (remote method invocation) como JAVA IDL (java interface definition language) son herramientas para desarrollar aplicaciones distribuidas. Estas aplicaciones presentan la característica, de que una aplicación puede ejecutar funciones y métodos en varios ordenadores distintos. Utilizando una referencia a un objeto que se encuentra en un ordenador remoto, es 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. Son por lo tanto tecnologías que permiten la creación y uso de objetos distribuidos, esto es, objetos o programas que interactúan en diferentes plataformas y ordenadores a través de una red. RMI es una solución basada íntegramente en java. Incorpora métodos para localizar los objetos remotos, comunicarse con ellos e incluso enviar un objeto de java, "por valor", de un objeto distribuido a otro.java IDL permite la conectividad entre objetos distribuidos utilizando corba (common object request broker architecture). Corba es un estándar para la interconexión entre objetos distribuidos. Existen implementaciones de corba en varios lenguajes, lo que posibilita comunicar objetos realizados en distintos lenguajes como Java, C/C++, Cobol, tanto RMI como Java IDL están incluidos en el JDK 1.2 de sun. En el caso de Java IDL se precisa de una utilidad adicional (llamada IDLTOJava) que genera el código necesario para comunicarse con cualquier implementación corba. Java ative Interface (J I) Según la pagina web: http://homepage.cs.uiowa.edu/~slonnegr/wpj/JNI.pdf visitada el 29/06/2013 nos dice: 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.
  • 22. 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; 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. 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.
  • 23. Conclusión El lenguaje de programación Java, permite el desarrollo de aplicaciones bajo el esquema de Cliente Servidor, como de aplicaciones distribuidas, lo que lo hace capaz de conectar dos o más computadoras u ordenadores, ejecutando tareas simultáneamente, y de esta forma logra distribuir el trabajo a realizar. Java es un lenguaje interpretado, y esto es lo que permite que los programas Java puedan ser ejecutados en una gran variedad de entornos. Una vez que existe el programa intérprete para un sistema dado, cualquier programa Java puede ejecutarse en esa plataforma. Un applet Java es un programa diseñado para ser transmitido a través de Internet o de una Intranet, desde un servidor web a un cliente, y ser ejecutado en un navegador web compatible con Java. Los applets Java no presentan problemas de seguridad, pues su ejecución se realiza dentro del entorno del navegador. Estos applets no son simples ficheros de imagen, sonido o animación, sino que son verdaderos programas, que pueden reaccionar ante las acciones del usuario y cambiar dinámicamente, no sólo ejecutar repetidamente la misma animación. En resumen cualquier tipo de aplicación se puede realizar con ella. Java permite la modularidad por lo que se pueden hacer rutinas individuales que sean usadas por más de una aplicación. Sin duda alguna uno de los mejores lenguajes de programación en la actualidad y con una gran cantidad de aplicaciones informáticas que pueden ser usadas en distintas ramas de la ciencia y tecnología.
  • 24. Referencias Electrónicas http://www.ciberaula.com/articulo/java_io http://chuwiki.chuidiang.org http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/archivos/teclado. htm españa 2013 http://es.scribd.com/doc/13562650/130/Lectura-y-Escritura-de-Archivos-II http://chuwiki.chuidiang.org/index.php?title=Serializaci%C3%B3n_de_obje tos_en_java http://chuwiki.chuidiang.org/index.php?title=Lectura_http_y_https_desde_java http://zarza.usal.es/~fgarcia/doc/tuto2/IV_1.htm españa 2013 http://blogdejuls.blogspot.com/2007/04/java-media-framework.html http://www.programacion.com/articulo/java_3d_169 http://www.slideshare.net/BorisSalleg/java-beans-en-jsp http://es.scribd.com/doc/51830722/206/RMI-Y-JAVA-IDL http://homepage.cs.uiowa.edu/~slonnegr/wpj/JNI.pdf