java
DESCRIPTION
..TRANSCRIPT
República Bolivariana de Venezuela.
Instituto Universitario Politécnico
“Santiago Mariño”
Extensión Porlamar.
Escuela: Ingeniería de sistemas.
Docente: Alumno:
Ing. Diógenes Rodríguez. Br: Velásquez José
C.I: 24.106.464
Nueva Esparta, Julio 2014
El lenguaje de programación Java fue originalmente desarrollado por James
Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado
en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems.
Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo
nivel que cualquiera de ellos.
Java es el lenguaje orientado a objetos diseñado para ser multiplataforma y poder ser
empleado el mismo programa en diversos sistemas operativos.
Éste es un lenguaje relativamente sencillo, debido a que prácticamente toda la
funcionalidad se encuentra en clases que forman parte del API de java. Constantemente
están surgiendo nuevos apis, que proporcionan nuevas extensiones a las características del
lenguaje. Estas características, junto con el hecho de que sea un lenguaje libre, pudiéndose
utilizar el compilador y la máquina virtual de forma gratuita le augura un gran futuro.
En el desarrollo de éste trabajo de investigación se explicara todo lo relacionado con los
archivos en java, donde se desglosaran detalladamente los puntos siguientes Entrada y
salida de datos en java , Clases de java para lectura y escritura de datos , Entrada y salida
estándar, Lectura y escritura de archivos, Serializacion , Lectura de un archivo en un
servidor de internet , Java Foundation Classes, Java 2d, Java Media Framework, Java 3D,
Java Beans, RMI y Java IDL, Java Native Interface.
Según Jesús Vegas y el Profesor Juan Pavón Maestre La E/S en java se basa en el
concepto de flujo, que es una secuencia ordenada de datos que tienen una fuente (flujos de
entrada) o un destino (flujos de salida). Las clases de E/S aíslan a los programadores de los
detalles específicos del sistema de funcionamiento de la máquina, al tiempo que posibilitan
el acceso a recursos del sistema por medio de ficheros o archivos (files).
La manera de representar estas entradas y salidas en Java es a base de streams (flujos de
datos). Un stream para tratar la comunicación de información entre el programa y el
exterior, es decir es La entrada y salida estándar son flujos de datos que actúan como
canales de comunicación permitiendo la interacción entre un programa y su entorno en el
sistema.
Según Santiago Ortiz, Luis Hidalgo Byron, Simbaña, Todos los datos fluyen a través
del ordenador desde una entrada hacia una salida. Este flujo de datos se denomina también
stream. Hay un flujo de entrada (input stream) que manda los datos desde el exterior
(normalmente el teclado) del ordenador, y un flujo de salida (output stream) que dirige los
datos hacia los dispositivos de salida (la pantalla o un archivo).
El proceso para leer o escribir datos consta de tres pasos
Abrir el flujo de datos
Mientras exista más información (leer o escribir ) los datos
Cerrar el flujo de datos.
Según David Contreras Bárcena y Daniel Santiago Martínez, 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.
Siguiendo la nomenclatura UNIX, Java tiene la entrada estándar (System.in), salida
estándar (System.out) y salida estándar de error (System.err).
System.in es un InputStream sin formatear
La entrada estándar del ordenador es el teclado, Java nos ofrece las herramientas necesarias
para leer los datos que un usuario introduce en un programa a través del teclado. Para ello,
se emplea el objeto System.in, perteneciente a la clase InputStream.
El objeto System.in ofrece diversos métodos para leer del teclado. El más básico es el
método read.
Ejemplo: char variable = (char) System.in.read();
El método read devuelve el código ASCII, en decimal, del carácter introducido. Éste
método read permite leer un único carácter a la vez.
System.out es un PrintStream preformateado
Implementa la salida estándar. Los métodos que nos proporciona para controlar la salida
son:
print(a): imprime a en la salida, donde a puede ser cualquier tipo básico de Java ya que
Java hace su conversión automática a cadena.
println(a): igual que el método anterior, salvo que imprime un salto de línea después de a
System.err un PrintStream preformateado
Implementa la salida en caso de error. Normalmente esta salida es la pantalla, pero puede
ser interesante redirigirlo.
Por ejemplo: a un fichero, para diferenciar claramente ambos tipos de salida. Los métodos
de este objeto son idénticos a los de System.out. System.err suele usarse en las
construcciones try- catch.
Según Enrique García Hernández para leer en un fichero de texto utilizaremos dos
clases:
FileReader y BufferedReader.
La clase FileReader permite tener acceso al fichero en modo lectura.
Para crear objetos FileReader podemos utilizar los constructores:
Ambos lanzan una excepción FileNotFoundException si el fichero no existe.
La clase FileReader proporciona el método read() para leer caracteres del fichero aunque lo
normal es realizar la lectura mediante la clase BufferedReader.
Para leer utilizando la clase BufferedReader se debe crear un objeto BufferedReader a
partir de un objeto FileReader:
Ejemplo:
Una vez creado el objeto BufferedReader podemos utilizar:
El método readLine() para leer líneas de texto del fichero (String). Este método
devuelve null cuando no hay más líneas para leer.
El método read() para leer carácter a carácter. Devuelve un entero que representa el
código Unicode del carácter leído. Devuelve -1 si no hay más caracteres.
Según Enrique García Hernández para escribir en un fichero de texto utilizaremos dos
clases:
FileWriter y PrintWriter.
La clase FileWriter permite tener acceso al fichero en modo escritura.
Para crear objetos FileWriter podemos utilizar los constructores:
El fichero se crea y si ya existe su contenido se pierde.
Si lo que necesitamos es abrir un fichero de texto existente sin perder su contenido y añadir
más contenido al final utilizaremos los constructores:
Si el parámetro append es true significa que los datos se van a añadir a los existentes. Si
es false los datos existentes se pierden.
La clase FileWriter proporciona el método write() para escribir cadenas de
caracteres aunque lo normal es utilizar esta clase junto con la clase PrintWriter para
facilitar la escritura.
La clase PrintWriter permite escribir caracteres en el fichero de la misma forma
que en la pantalla.
Un objeto PrintWriter se crea a partir de un objeto FileWriter.
Según Wikipedia y Lic. Nancy Michelle Torres Villanueva Consiste en un proceso
de codificación de un objeto en un medio de almacenamiento (como puede ser un archivo,
o un buffer de memoria) con el fin de transmitirlo a través de una conexión en red como
una serie de bytes o en un formato humanamente más legible como XML o JSON, entre
otros. La serie de bytes o el formato pueden ser usados para crear un nuevo objeto que es
idéntico en todo al original, incluido su estado interno (por tanto, el nuevo objeto es un clon
del original). La serialización es un mecanismo ampliamente usado para transportar objetos
a través de una red, para hacer persistente un objeto en un archivo o base de datos, o para
distribuir objetos idénticos a varias aplicaciones o localizaciones.
Un objeto Java serializable es uno cuya clase implementa la interface Serializable. Esta
interface no posee métodos, solo indica a la máquina virtual que ese objeto puede
transmitirse por un flujo.
Serialización tiene una serie de ventajas:
Un método de persistencia de objetos que es más conveniente que escribir sus
propiedades a un archivo de texto en disco.
Un método de emisión de llamadas a procedimiento remoto, por ejemplo, como en
SOAP.
Un método para la distribución de objetos, especialmente en los componentes
software, tales como COM, CORBA, etc.
Un método para detectar cambios en variables en el tiempo.
Según Raysha P Vera Callao Teniendo la dilección de Internet de un archivo, la
librería de Java permite leer este archivo utilizando stream. Es una aplicación muy sencilla
que muestra la polivalencia del concepto de stream.
En el package java.net existe la clase URL. Que representa una dirección de Internet. Esta
clase tiene el método InputStream openStream (URL dir) que abre un stream con origen en
la dirección de Internet. A partir de ahí. se trata como cualquier elemento InputStream.
Según Raysha P Vera Callao y Wikipedia Java Foundation Classes son un conjunto
de componentes y características para ayudar a construir los entornos gráficos de los
programas o GUIs (Graphical User Interfaces). Incluye prácticamente todo tipo de
elementos gráficos como botones, paneles, menús y ventanas, con muchas ventajas sobre el
AWT.
Swing es una paite de las JFC que permite incorporar en las aplicaciones elementos
gráficos de una forma mucho más versátil y con más capacidades que utilizando el AWT
básico de Java
JFC es un framework gráfico para construir interfaces gráficas de usuario portables basadas
en Java. JFC se compone de Abstract Window Toolkit (AWT), Swing y Java 2D. Juntas,
suministran una interfaz de usuario consistente para programas Java, tanto si el sistema de
interfaz de usuario subyacente es Windows, Mac OS X o Linux.
Java 2D
La 2D Javanesa API es un juego de clases para la gráfica avanzada de 2D y la
imagimática. Esto abarca el arte de línea, el texto, e imágenes en un modelo solo
comprensivo. El API proporciona el apoyo extenso a la imagen , un juego de clases para
proporcionar la definición exacta en color espacial y la conversión, y un juego rico de
operadores orientados por demostración. Proporcionan estas clases como adiciones al
java.awt y paquetes de java.awt.image (más bien que como un paquete separado).
Según Wikipedia y otras fuentes citadas de internet Es el entorno de trabajo
multimedia de Java, el JMF es una librería de Java desarrollada por Sun Microsystems para
facilitar el desarrollo de aplicaciones multimedia en este lenguaje de programación.
JMF es una API que nos sirve para incluir multimedia en nuestras aplicaciones de Java,
funciona básicamente, recibiendo el contenido multimedia de alguna fuente, para después
procesarlo y entregarlo en alguna salida multimedia.
Funcionalidad
A partir de la versión 2.1.1, JMF incluye la siguiente funcionalidad:
Reproducción de formatos de audio: AU, AVI, MIDI, MPEG, WAV.
Reproducción de formatos de vídeo: Quicktime, MPEG.
Captura de audio y vídeo mediante micrófono o videocámara.
Almacenamiento de los datos en los formatos soportados.
Streaming y emisión multimedia vía Internet.
Procesamiento de información multimedia (aplicación de filtros, conversión entre
formatos, comprensión/descomprensión).
Según Ricard Lou Torrijos El API Java 3D es un interface para escribir
programas que muestran e interactúan con gráficos tridimensionales. Java 3D es una
extensión estándar del JDK 2 de Java. El API Java 3D proporciona una colección de
constructores de alto-nivel para crear y manipular geometrías 3D y estructuras para
dibujar esta geometría. Java 3D proporciona las funciones para creación de imágenes,
visualizaciones, animaciones y programas de aplicaciones gráficas 3D interactivas.
El API 3D de Java es un árbol de clases Java que sirven como interface para sistemas de
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. 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.
Según Wikipedia y otras fuentes de internet Un Bean es un
componente software que tiene la particularidad de ser reutilizable y así evitar la tediosa
tarea de programar los distintos componentes uno a uno.
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, para hacer uso de un solo objeto en lugar de varios más simples.
Un JavaBean o bean es un componente hecho en software que se puede reutilizar y que
puede ser manipulado visualmente por una herramienta de programación en lenguaje Java.
Según Andrés Cabrera se denota la interfaz RMI de Java sobre el
sistema CORBA, son herramientas para desarrollar aplicaciones distribuidas 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.
RMI en Java básicamente permite a un objeto que se está ejecutando en una Máquina
Virtual Java (VM) llamar a métodos de otro objeto que está en otra VM diferente.
Finalmente, RMI se maneja bajo un esquema cliente/servidor, en donde se inicializa un
servidor RMI y los clientes RMI lo consumen, gracias a esto, los objetos no son solo
elementos independientes, sino que además, se encuentran distribuidos en diversos
ordenadores conectados a través de una red.
.
La arquitectura de una aplicación RMI consta de tres capas:
.
La capa stub/skeleton ó proxy
La capa de referencia remota.
La capa de transporte.
Según Wikipedia es un framework de programación que permite que un programa
escrito en Java ejecutado en la máquina virtual java (JVM) pueda interactuar con
programas escritos en otros lenguajes como C, C++ y ensamblador.
El JNI se usa para escribir métodos nativos que permitan solventar situaciones en las que
una aplicación no puede ser enteramente escrita en Java. 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.
En el presente trabajo de investigación se puede dar a concluir que el lenguaje para
la programación en Java, es un lenguaje orientado a objeto, de una plataforma
independiente. Esta programación Java tiene muchas similitudes con el lenguaje C y C++,
ya que este lenguaje Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las
características menos usadas y más confusas de éstos. Por tanto Java es un lenguaje
interpretado, y esto es lo que permite que los programas Java puedan ser ejecutados en una
gran variedad de entornos.
Cabe destacar que Java realiza verificaciones en busca de problemas tanto en tiempo de
compilación como en tiempo de ejecución.
Cabe destacar que Java radica en la posibilidad de crear o diseñar software y poder ser
ejecutado en diferentes plataformas donde se requiere, sin la necesidad de estar
modificándolo. Además de esto, es una herramienta diseñada con muchos elementos
parecidos a C++ pero en una versión mejorada, más sencilla de manejar, con menos
complejidad y con barreras de seguridad en su lenguaje y ejecución.
Por ésta razón con la programación en Java, se pueden realizar distintos aplicativos, como
son applets, que son aplicaciones especiales, que se ejecutan dentro de un navegador, los
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.
http://darkbyteblog.wordpress.com/2011/03/08/java-flujos-de-datos-entrada-y-salida-
estandar/
http://www.infor.uva.es/~jvegas/cursos/prog/tema6.html
https://www.fdi.ucm.es/profesor/jpavon/poo/2.13.EntradaySalida.pdf
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/archivos/flujos.htm
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/archivos/flujos.htm
http://www.labcom.upcomillas.es/poo/itig/apuntes/Java08.pdf
http://es.slideshare.net/DaniSantia/t4-entrada-y-salida-en-java
http://puntocomnoesunlenguaje.blogspot.com/2013/05/ficheros-de-texto-en-java.html
http://es.slideshare.net/chicaGeekGPLMX/manejo-de-archivos-en-java
http://es.wikipedia.org/wiki/Serializaci%C3%B3n
http://ayudaparaprogramacion.blogspot.com/2014/06/lectura-de-un-archivo-en-un-servidor-
de.html
http://www.math.uni-hamburg.de/doc/java/tutorial/post1.0/preview/jfc.html
http://ayudaparaprogramacion.blogspot.com/2014/06/java-foundation-classes-jfc-y-java-
2d.html
http://es.wikipedia.org/wiki/Java_Foundation_Classes
http://es.wikipedia.org/wiki/Java_Media_Framework
http://blogdejuls.blogspot.com/2007/04/java-media-framework.html
http://programacion.net/articulo/java_3d_169
http://www.sc.ehu.es/sbweb/fisica/cursoJava/applets/javaBeans/fundamento.htm
http://es.wikipedia.org/wiki/JavaBean
http://es.wikipedia.org/wiki/Bean
http://jckmex.net/rmi-java/
http://es.wikipedia.org/wiki/RMI-IIOP
http://es.wikipedia.org/wiki/Java_Native_Interface