Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Documentos relacionados
Entrada y Salida de datos

Por el contrario System.in es un byte Stream sin caracteristicas de character Stream.

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Práctica 4: Herencia. Objetivos:

Flujos (streams) Programación. Licenciatura Lingüística y Nuevas Tecnologias Nadjet Bouayad-Agha

Tema 4. Excepciones en Java

Introduciendo datos desde el

StringBuffer, Math y Wrapper

James Gosling, creador de Java

CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA 2014

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

Guía - Taller # 2 (JAVA)

Entrada y Salida con Java

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

Estructuras básicas de la programación en Java

Aprendiendo Java. Programación Orientada a Objetos

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Programación Java. Introducción a Archivos de datos de Entrada

Prácticas de Programación

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

IIC1103 Introducción a la Programación. Ayudantía: Archivos

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

TEMA 1. Introducción a la programación. CONSIDERACIONES GENERALES.

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

Práctica III: Streams, Readers y Writers

Arquitecturas cliente/servidor

Tema 2. El lenguaje de programación Java (Parte 1)

FACULTAD DE INGENIERÍA

1 ELEMENTOS BASICOS DEL LENGUAJE

Nota: en el directorio de prácticas y en PoliformaT puedes descargar los ficheros de código fuente de los ejemplos que aparecen en este anexo.

Manejo de Excepciones Para capturar y manejar las excepciones Java proporciona la sentencia try, catch y finalty. Entre un try y un catch se escribe

INTRODUCCION A LA PROGRAMACION EN JAVA

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación Orientada a Objetos. Tema 7: Persistencia

Entrada y salida de datos. Entrada y salida de datos. Flujos estándar. Flujos estándar. Operación y flujos estándar en java

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Tipos DataInputStream/DataOutputStream: L/E de datos de tipo simple y Cadenas (Strings) ObjectInputStream/ObjectOutputStream: para persistencia de obj

Metodología y Tecnología de la Programación

Desarrollo de Aplicaciones Distribuidas. Sockets. Daniel Avellaneda

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

Conceptos más avanzados de Programación Orientada a Objetos

La clase String

Informática Ingeniería en Electrónica y Automática Industrial

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Capítulo 5. Programación de aplicaciones de red

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Prueba N o 1. Programación II

Construcciones del Lenguaje Java

FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA

1.- FUNDAMENTOS FUNCIONAMIENTO GENÉRICO JAVA SOCKETS Creación de Streams de Entrada...7

Streams y manejo de entrada y salida (Input & Output)

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Tema: Introducción a Java y Netbeans

Diferentes Perspectivas de un Ordenador

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

La Plataforma J2SE (Java 7) PROGRAMA HOLA MUNDO

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Java: control de excepciones

Curso Informática Lección 2. Introducción a la programación en Java

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

PROGRAMACIÓN CLIENTE-SERVIDOR MEDIANTE SOCKETS EN JAVA

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

Sintaxis básica, variables y 7pos

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

6. Sentencias repetitivas o bucles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

TEMA 9. Agenda. Ficheros

LLAMADAS AL SISTEMA SISTEMAS OPERATIVOS

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

Arquitecturas cliente/servidor

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Práctica 2: Java Remote Method Invocation (RMI)

Introducción a la Programación en Java

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

GUÍA DE LABORATORIO 5 ARREGLOS DE UNA DIMENSIÓN

Introducción a la Programación en Java. Page 1

Ejercicios de evaluación de fundamentos de programación en Java

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Las clases Java Socket y ServerSocket

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

EXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es:

FACULTAD DE INGENIERÍA

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Información de la lectura en un programa.

2. Estructura de un programa en Java

Tema: Estructuras de Selección en C#.

Federico Peinado

Transcripción:

9 - Entrada y salida de datos estándar Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas Entrada y salida de datos estandar Normalmente, cuando se codifica un programa, se hace con la intención de que ese programa pueda interactuar con los usuarios del mismo, es decir, que el usuario pueda pedirle que realice cosas y pueda suministrarle datos con los que se quiere que haga algo. Una vez introducidos los datos y las órdenes, se espera que el programa manipule de alguna forma esos datos para proporcionarnos una respuesta a lo solicitado. A todas estas operaciones, que constituyen un flujo de información del programa con el exterior, se les conoce como Entrada/Salida (E/S). Existen dos tipos de E/S; la E/S estándar que se realiza con el terminal del usuario y la E/S a través de fichero, en la que se trabaja con ficheros de disco, en esta guía solo se tratara el primero, posteriormente se hablara del segundo. Todas las operaciones de E/S en Java vienen proporcionadas por el paquete estándar de la API de Java denominado java.io que incorpora interfaces, clases y excepciones para acceder a todo tipo de ficheros. En este guia sólo se van a dar algunas pinceladas de la potencia de este paquete.

Para los siguientes ejemplos ya tenemos casi todo discutido, excepto que por cuestiones educativas sería interesante que el programa no solo contenga los valores que interactuarán almacenados, sino que también sea posible preguntar al usuario, ya se conoce una forma que es mediante la clase JOptionPane ahora se vera como se hace de forma estándar o también llamada por consola. Es bueno resalta que para las maratones de programación la captura y entrega de datos resultantes se realiza por entrada y salida estándar System.out El objeto System es parte de la biblioteca de Java y es instanciado o fabricado al iniciar la JVM (Java Virtual Machin) mucho antes que se comience a ejecutar nuestro programa. Este almacena 3 objetos, son out, in y err. El objeto out es del tipo o clase Printstream que tiene las siguientes propiedades y métodos importantes, no listaremos todos: Resumen de Métodos boolean checkerror() Envía todo el buffer y devuelve verdadero si hay error o falso. close() Cierra el flujo de datos flush() Envía todo el buffer. print(boolean b) Imprime una variable booleana

print(char c) Imprime un caracter. print(char[] s) Imprime un arreglo de caracteres. print(double d) Imprime un numero de tipo double. print(float f) Imprime un número de punto flotante. print(int i) Imprime un entero. print(long l) Imprime un entero largo. print(object obj) Imprime un objeto, invocando su función tostring() print(string s) Imprime un objeto de tipo String println() Imprime una separador de nueva línea.

println(boolean x) Imprime un valor booleano y termina la línea. println(char x) Imprime un caracter y termina la línea. println(char[] x) Imprime un arreglo de caracteres y termina la línea. println(double x) Imprime un número de precisión doble y termina la línea. println(float x) Imprime un número de punto flotante y termina la línea. println(int x) Imprime un entero y termina la línea. println(long x) Imprime un entero largo y termina la línea. println(object x) Imprime un objeto invocando su método tostring() y termina la línea. println(string x) Imprime un trozo de texto y termina la línea.

System.in El objeto in que es una propiedad de System es de la clase o tipo InputStream, que también es parte de la biblioteca de Java. Aquí vemos los métodos que nos interesan. Resumen de Métodos int available() Devuelve la cantidad de bytes que se pueden leer (o pasar por alto) desde esta entrada sin bloquear la próxima llamada a lectura. close() Cierra esta entrada de datos y libera todos los recursos asociados. abstract int read() Lee el próximo byte de datos desde la entrada, espera por los datos. int read(byte[] b) Lee de la entrada los bytes que llenan el arreglo b, devuelve la cantidad de bytes que se almacenaron. int read(byte[] b, int off, int len) Lee hasta len bytes de datos adentro del arreglo de bytes b empezando en off.

long skip(long n) Salta y destrulle los n caracteres de datos. System.err Este objeto es del mismo tipo que out (Printstream) y tiene las mismas propiedades, en los sistemas operativos derivados de Unix como sor Linux, no existe mucha diferencia entre salida estándar de datos (System.out) y la salida estándar de errores (System.err). System.exit(int cod); El método estático exit(cod) de la clase System interrumpe la ejecución total del programa y devuelve el control al sistema operativo, es decir la JVM (Java Virtual Machin) termina por completo liberando los recursos. Un código de salida igual a cero es considerado como una ejecución satisfactoria del programa, un código diferente a este, se considera un error y sirve para que el sistema operativo u otro programa que llame al nuestro sepan de alguna manera que ocurrió. A continuación vemos un ejemplo del uso de estas funciones que acepta texto hasta que se pulsa el retorno de carro e informa del número de caracteres introducidos. import java.io.*; class CuentaCaracteres { public static main(string args[]) throws IOException { int contador=0; while(system.in.read()!='\n') contador++;

System.out.println(); // Retorno de carro "gratuito" System.out.println("Tecleados "+contador+" caracteres."); Los objetos System.in y System.out 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 Enter. Para leer un conjunto de caracteres hasta que se pulse la tecla Enter escribimos 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 son insert 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 convertido a char. La clase Reader Para comprender la clase Reader nada como un ejemplo: package teclado; import java.io.*; public class TecladoApp2 { public static main(string[] args) { StringBuffer str=new StringBuffer(); char c; try{

Reader entrada=new InputStreamReader(System.in); // while ((c=(char)system.in.read())!='\n'){ while ((c=(char)entrada.read())!='\n'){ str.append(c); catch(ioexception ex){ System.out.println(str); try { //espera la pulsación de una tecla y luego RETORNO System.in.read(); catch (Exception e) { 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 con: System.out.println(str); Tambien se puede usar la segunda versión de la función read para leer el conjunto de caracteres tecleados por el usuario, el programa seria: package teclado; import java.io.*; public class TecladoApp1 { public static main(string[] args) { char[] buffer=new char[255]; System.out.println("Introduce una línea de texto y pulsa RETORNO "); 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){ System.out.println("Error entrada/salida");

System.out.println("La línea de texto que has escrito es "); String str=new String(buffer); System.out.println(str); try { //espera la pulsación de una tecla y luego RETORNO System.in.read(); catch (Exception e) { 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 Enter, 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);

Ejercicio para el lector Realice un aplicación que lea desde entrada estándar 5 notas con números de punto flotante y calcule el promedio de estas 5 notas, este promedio debe ser impreso en pantalla. Investigue que es y como funciona la clase Scanner, Ahora que usted la conoce y sabe de su funcionamiento modificar todos los programas anteriormente realizados para que capturen la entrada de datos estándar con la clase Scanner.