SlideShare une entreprise Scribd logo
1  sur  19
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
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 visitada el 29/06/2013
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 emplear son las mismas independientemente del
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:
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 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
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.
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");
 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.
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();
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.
 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 Fi
l
eReader, si no encuentran el archivo
indicado, pueden lanzar la excepción FileNotFoundException. En la escritura, los
constructores de FileOutputStream y Fi
l
eWri
ter 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 = ne w F ile I np ut S t r e a m ( “ f ic 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;
}
 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.
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).
 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 de JMF en la página de Java muestran esta imagen,
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 y los dispositivos de salida que en la imagen
son una televisión y unas bocinas que serian la applet en el cual se van a presentar los
contenidos multimedia. Lo único que haría falta entonces seria el reproductor. La manera
mas sencilla de poner un reproductor en la applet es utilizando el MediaPlayer Bean.
Instanciamos un Media Player, asi:
MediaPlayer 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.
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 Native Interface (JNI)
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.
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

Contenu connexe

Tendances

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 javatensanti
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaIngeniería Nica
 
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
 
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 javamariasuarezsalazar
 
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 JAVAGabriel Suarez
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y SalidaCristian Andres
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gioRobert Wolf
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en javarsalazar16988
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointJ_cordero
 
Apendice general 4 terminos de programador
Apendice general 4 terminos de programadorApendice general 4 terminos de programador
Apendice general 4 terminos de programadorWilson Delgado Ramos
 
Tipos de datos entrada y salida
Tipos de datos entrada y salidaTipos de datos entrada y salida
Tipos de datos entrada y salidaBrahyan Marquez
 
Programación en Java (y II)
Programación en Java (y II)Programación en Java (y II)
Programación en Java (y II)Cristian
 

Tendances (20)

Java - No numérica - II
Java - No numérica - IIJava - No numérica - II
Java - No numérica - II
 
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
 
Flujos de Entrada y Salida en Java
Flujos de Entrada y Salida en JavaFlujos de Entrada y Salida en Java
Flujos de Entrada y Salida en 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
 
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
 
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
 
Flujo datos
Flujo datosFlujo datos
Flujo datos
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y Salida
 
Tema 8 entrada y salida por gio
Tema 8   entrada y salida por gioTema 8   entrada y salida por gio
Tema 8 entrada y salida por gio
 
3. tipos de programas java
3. tipos de programas java3. tipos de programas java
3. tipos de programas java
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en java
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Flujos y archivos
Flujos y archivosFlujos y archivos
Flujos y archivos
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power point
 
Apendice general 4 terminos de programador
Apendice general 4 terminos de programadorApendice general 4 terminos de programador
Apendice general 4 terminos de programador
 
Glosario
GlosarioGlosario
Glosario
 
Tipos de datos entrada y salida
Tipos de datos entrada y salidaTipos de datos entrada y salida
Tipos de datos entrada y salida
 
Introducción a lenguaje Visual Basic
Introducción a lenguaje Visual BasicIntroducción a lenguaje Visual Basic
Introducción a lenguaje Visual Basic
 
Programación en Java (y II)
Programación en Java (y II)Programación en Java (y II)
Programación en Java (y II)
 

En vedette

TRABAJO FINAL REVISTA
TRABAJO FINAL REVISTATRABAJO FINAL REVISTA
TRABAJO FINAL REVISTAMery_001
 
Productivity of cassava sweet potato intercropping system as influenced by va...
Productivity of cassava sweet potato intercropping system as influenced by va...Productivity of cassava sweet potato intercropping system as influenced by va...
Productivity of cassava sweet potato intercropping system as influenced by va...Alexander Decker
 
ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?
ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?
ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?Islamic Invitation
 
Administracion Publica Menduca
Administracion Publica MenducaAdministracion Publica Menduca
Administracion Publica Menducamiriamdipietro
 
Alianza pais y la consulta popular
Alianza pais y la consulta popularAlianza pais y la consulta popular
Alianza pais y la consulta popularRobert Gallegos
 
Colineal Mauricio
Colineal MauricioColineal Mauricio
Colineal Mauricioguest4c3330
 
The seal of God
The seal of GodThe seal of God
The seal of GodSigns2011
 
Roadshow asia tomi ahonen-8benefits
Roadshow asia tomi ahonen-8benefitsRoadshow asia tomi ahonen-8benefits
Roadshow asia tomi ahonen-8benefitsmobilesquared Ltd
 
Quien es dios
Quien es diosQuien es dios
Quien es diosavatarz
 
1001 greatest quotation
1001 greatest quotation1001 greatest quotation
1001 greatest quotationSantosh Mote
 
Balancing the Daily Life in the World
Balancing the Daily Life in the WorldBalancing the Daily Life in the World
Balancing the Daily Life in the WorldShane Elahi
 
A.Apres.Trab.DigestãO.Bei
A.Apres.Trab.DigestãO.BeiA.Apres.Trab.DigestãO.Bei
A.Apres.Trab.DigestãO.BeiAlbano Novaes
 
La mediatización o mediación y el método científico
La mediatización o mediación y el método científicoLa mediatización o mediación y el método científico
La mediatización o mediación y el método científicoMoises Logroño
 
Guion pps las 70 semanas de daniel
Guion pps   las 70 semanas de danielGuion pps   las 70 semanas de daniel
Guion pps las 70 semanas de danielMinisterios Gilgal
 
Making the most out of your cross generational workplace mix
Making the most out of your cross generational workplace mixMaking the most out of your cross generational workplace mix
Making the most out of your cross generational workplace mixCegos Asia Pacific Pte Ltd
 

En vedette (20)

TRABAJO FINAL REVISTA
TRABAJO FINAL REVISTATRABAJO FINAL REVISTA
TRABAJO FINAL REVISTA
 
Productivity of cassava sweet potato intercropping system as influenced by va...
Productivity of cassava sweet potato intercropping system as influenced by va...Productivity of cassava sweet potato intercropping system as influenced by va...
Productivity of cassava sweet potato intercropping system as influenced by va...
 
ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?
ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?
ES LA DOCTRINA DE LA SANTA TRINIDAD INSPIRADA POR LA DIVINIDAD ?
 
Administracion Publica Menduca
Administracion Publica MenducaAdministracion Publica Menduca
Administracion Publica Menduca
 
Alianza pais y la consulta popular
Alianza pais y la consulta popularAlianza pais y la consulta popular
Alianza pais y la consulta popular
 
Dispositivos legais e a salvaguarda do acesso público à informação e ao conhe...
Dispositivos legais e a salvaguarda do acesso público à informação e ao conhe...Dispositivos legais e a salvaguarda do acesso público à informação e ao conhe...
Dispositivos legais e a salvaguarda do acesso público à informação e ao conhe...
 
Colineal Mauricio
Colineal MauricioColineal Mauricio
Colineal Mauricio
 
Software guide w_es
Software guide w_esSoftware guide w_es
Software guide w_es
 
The seal of God
The seal of GodThe seal of God
The seal of God
 
Plan de desarrollo
Plan de desarrolloPlan de desarrollo
Plan de desarrollo
 
Roadshow asia tomi ahonen-8benefits
Roadshow asia tomi ahonen-8benefitsRoadshow asia tomi ahonen-8benefits
Roadshow asia tomi ahonen-8benefits
 
Quien es dios
Quien es diosQuien es dios
Quien es dios
 
1001 greatest quotation
1001 greatest quotation1001 greatest quotation
1001 greatest quotation
 
Plagiarism
PlagiarismPlagiarism
Plagiarism
 
Balancing the Daily Life in the World
Balancing the Daily Life in the WorldBalancing the Daily Life in the World
Balancing the Daily Life in the World
 
Cómo crear mi PLE
Cómo crear mi PLECómo crear mi PLE
Cómo crear mi PLE
 
A.Apres.Trab.DigestãO.Bei
A.Apres.Trab.DigestãO.BeiA.Apres.Trab.DigestãO.Bei
A.Apres.Trab.DigestãO.Bei
 
La mediatización o mediación y el método científico
La mediatización o mediación y el método científicoLa mediatización o mediación y el método científico
La mediatización o mediación y el método científico
 
Guion pps las 70 semanas de daniel
Guion pps   las 70 semanas de danielGuion pps   las 70 semanas de daniel
Guion pps las 70 semanas de daniel
 
Making the most out of your cross generational workplace mix
Making the most out of your cross generational workplace mixMaking the most out of your cross generational workplace mix
Making the most out of your cross generational workplace mix
 

Similaire à Programacion no numerica ii

Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 
No numerica ii
No numerica iiNo numerica ii
No numerica iiJ_cordero
 
Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IIrafaelrojas91
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasAnel Sosa
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gilreyking3000
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javaingyon
 
Presentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaPresentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaLuisFeSilva
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosDoris Aguagallo
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica iiCarlos Ordaz
 
Presentacion java
Presentacion javaPresentacion java
Presentacion javaJose Cortez
 

Similaire à Programacion no numerica ii (20)

Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
No numerica ii
No numerica iiNo numerica ii
No numerica ii
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica II
 
investigacion unidad tres componentes y librerias
investigacion unidad tres componentes y libreriasinvestigacion unidad tres componentes y librerias
investigacion unidad tres componentes y librerias
 
Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gil
 
ARCHIVOS
ARCHIVOS ARCHIVOS
ARCHIVOS
 
Fun consola guia_01
Fun consola guia_01Fun consola guia_01
Fun consola guia_01
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Java
 
Clase 4 JAVA 2012
Clase 4 JAVA 2012Clase 4 JAVA 2012
Clase 4 JAVA 2012
 
Clase 4 java 2011
Clase 4 java 2011Clase 4 java 2011
Clase 4 java 2011
 
Presentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaPresentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones java
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica ii
 
Presentacion java
Presentacion javaPresentacion java
Presentacion java
 
Conceptos estructuras de datos
Conceptos estructuras de datosConceptos estructuras de datos
Conceptos estructuras de datos
 
Grupo1
Grupo1Grupo1
Grupo1
 

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
  • 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 visitada el 29/06/2013 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 emplear son las mismas independientemente del 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:
  • 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 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 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. 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.
  • 5. File f1 = new File("/"); File f2 = new File("/","autoexec.bat"); File f3 = new File(f1, "autoexec.bat");  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. 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(); 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.
  • 6.  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
  • 7. 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];
  • 8. 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 Fi l eReader, si no encuentran el archivo indicado, pueden lanzar la excepción FileNotFoundException. En la escritura, los constructores de FileOutputStream y Fi l eWri ter pueden lanzar la excepción IOException. Si no
  • 9. 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 = ne w F ile I np ut S t r e a m ( “ f ic 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
  • 10. /* 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; }  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
  • 11. 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. 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.
  • 12. 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).  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
  • 13. 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 de JMF en la página de Java muestran esta imagen, que es muy ilustrativa y ayuda a comprender mejor esta API.
  • 14. 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 son una televisión y unas bocinas que serian la applet en el cual se van a presentar los contenidos multimedia. Lo único que haría falta entonces seria el reproductor. La manera mas sencilla de poner un reproductor en la applet es utilizando el MediaPlayer Bean. Instanciamos un Media Player, asi: MediaPlayer 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();
  • 15.  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.
  • 16. 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
  • 17. 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 Native Interface (JNI) 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.
  • 18. 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.
  • 19. 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