Logo Revista Java

startjavaabout

articles

00. Prólogo (java)
01.a TEMAS INTRODUCTORIOS. (java)
01.b Comandos que Inician la Máquina de Java y la salida de texto (java)
01.c Descripción empírica de la Programación Orientada a Objetos con Java. (java)
01.d Herencia Soportada por Java y Tipos de Datos Básicos. (java)
01.e Operadores, Delimitadores Básicos Y los nombres de función Válidos. (java)
02.a Codificación Inicial y Estructuras de Datos. (java)
02.b Paquetes, y Palabras clave, (Reservadas) (java)
02.c Tipos de Datos, y declaraciones de funciones, Tablas. (java)
02.d Bucles y Tomas de decisión, Excepciones y Control de Errores. (java)
02.e Secuencias de Escape (java)
02.f Concatenación y Conversiones a Texto. (java)
02.g Métodos de Entrada y Salida de datos (java)
02.h Crear Objetos de la biblioteca de Java (java)
02.i Ejercicio: Entrada de Datos y Conversiones (if, try, catch) (java)
02.j Ejercicios, usando excepciones y while, y switch (java)
02.k Práctica complementaria Resuelta sin Arreglos. (java)
02.l Ejercicios de la práctica complementaria (java)
02.m Práctica complementaria resuelta Ej 6 y 7 (java)
02.m Práctica complementaria resuelta Ej 8 y 9 (java)
03.a Métodos estáticos y mecanismos de programación (java)
03.b Arreglos (Arrays o Vectores) (java)
03.c La clase Math como ayudante para resolver problemas (java)
03.d Usando arreglos para un buffer, colas de espera, pilas y listas. (java)
03.e Implementación del buffer tipo FIFO (Cola de espera, el primero es primero en salir) (java)
03.f Implementación del buffer tipo FIFO (Cola de espera, el primero es primero en salir) 2da parte (java)
03.g Implementación del buffer tipo LIFO (La pila, último en llegar es primero en salir) (java)
03.h Implementación del buffer tipo LIFO (La pila, último en llegar es primero en salir) 2da parte (java)
03.i Implementación de una Lista de datos. (java)
03.j Búsqueda Secuencial dentro de la lista de datos. (java)
03.k Búsqueda Aleatoria dentro de la lista de datos. (java)
03.l Búsqueda binaria dentro de una lista ordenada de datos. (java)
03.m Método para Ordenar - La Burbuja (java)
03.n Método para Ordenar - QuickSort Recursivo (java)
03.o Ejercicios Resueltos, ordenar con Java (java)
04.a Nuestro primer Objeto en Java (java)
04.b Codificación del primer Objeto en Java (java)
Vemos los métodos diponibles en la clase System, objetos in, out, err y como leemos por teclado.

02.g Métodos de Entrada y Salida de datos

(523)
Vemos los métodos diponibles en la clase System, objetos in, out, err y como leemos por teclado.
contact
Created,Modified
2009-03-30 13:59:56, 2009-05-07 19:05:50
Author,Nick
Gustavo Guillermo Perez, (madgus) [myblog]

Salida por pantalla y entrada por teclado

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.

System.out

El objeto System es parte de la biblioteca de Java y es instanciado o fabricado al iniciar la JVM 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.

 void

close()
          Cierra el flujo de datos

 void

flush()
          Envía todo el buffer.

 void

print(boolean b)
          Imprime una variable booleana

 void

print(char c)
          Imprime un caracter.

 void

print(char[] s)
          Imprime un arreglo de caracteres.

 void

print(double d)
          Imprime un numero de tipo double.

 void

print(float f)
          Imprime un número de punto flotante.

 void

print(int i)
          Imprime un entero.

 void

print(long l)
          Imprime un entero largo.

 void

print(Object obj)
          Imprime un objeto, invocando su función toString()

 void

print(String s)
          Imprime un objeto de tipo String

 void

println()
          Imprime una separador de nueva línea.

 void

println(boolean x)
          Imprime un valor booleano y termina la línea.

 void

println(char x)
          Imprime un caracter y termina la línea.

 void

println(char[] x)
          Imprime un arreglo de caracteres y termina la línea.

 void

println(double x)
          Imprime un número de precisión doble y termina la línea.

 void

println(float x)
          Imprime un número de punto flotante y termina la línea.

 void

println(int x)
          Imprime un entero y termina la línea.

 void

println(long x)
          Imprime un entero largo y termina la línea.

 void

println(Object x)
          Imprime un objeto invocando su método toString() y termina la línea.

 void

println(String x)
          Imprime un trozo de texto y termina la línea.

Tabla 8: Resumen de métodos importantes para out.

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.

 void

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.

Tabla 9: Resumen de métodos importantes del tipo de objetos in.

System.err

Este objeto es del mismo tipo que out (Printstream) y tiene las mismas propiedades, en los sistemas operativos derivados de Unix como ser Linux, existe mucho la diferencia entre salida estándar de datos (System.out) y la salida estándar de errores (System.err), por ejemplo al imprimir todos los carteles de errores en un tipo de salida no afectaríamos a los resultados, un ejemplo sería el siguiente:

public class SumaSimple3 {

public static void main(String[] args) {

int a=1;

System.err.println("el valor de a="+a);

System.out.println(a);

a=a+10;

System.err.println("ahora sumándole 10 es a="+a);

System.out.println(a);

}

}


Si este código lo compilamos al ejecutarlo podemos separar los comentarios de los valores de a.

gus@gusgus ~ $ cd ejemplos

gus@gusgus ~/ejemplos $ javac SumaSimple3.java

gus@gusgus ~/ejemplos $ java SumaSimple3

el valor de a=1

1

ahora sumándole 10 es a=11

11

gus@gusgus ~/ejemplos $ java SumaSimple3 > resultados.txt

el valor de a=1

ahora sumándole 10 es a=11

gus@gusgus ~/ejemplos $ java SumaSimple3 2> errores.txt

1

11

gus@gusgus ~/ejemplos $


De esa manera generamos y almacenamos por separado los errores y los resultados.

Nota: Es muy buena práctica acostumbrarse a separar los datos de errores a cada flojo de datos err y out, ya que si el flujo fuera un protocolo de comunicación mezclaríamos los datos con los errores.

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 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 sepa de alguna manera que ocurrió.

Leer líneas de la entrada estándar.

Para leer líneas de la entrada estándar podemos utilizar una combinación de objetos de la biblioteca que nos permitirán simplemente esperar a que el usuario ingrese texto y presione enter, o podemos codificar la lectura secuencial de caracteres uno en uno hasta que se detecte un salto de línea, tengamos en cuenta que java es multiplataforma, y si el sistema operativo no es Linux, es probable que se introduzca más de un caracter para el salto de línea lo cual incrementa la complejidad del problema.

  1. package com.compunauta.aprendiendojava;

  2. import java.io.*;

  3. public class LeerRenglones {

  4. public static void main(String[] args) {

  5. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

  6. System.out.println("Hola, ingresa tu nombre");

  7. String nombre;

  8. try {nombre = br.readLine();}

  9. catch (IOException ex) {ex.printStackTrace();System.exit(-1);}

  10. System.out.println("Hola, "+nombre+" ten un buen día");

  11. System.exit(0);}

  12. }

Nota: Queda como ejercicio para el lector ver los métodos y propiedades de la documentación de la api proporcionada por Sun Microsystems (java.sun.com) para las clases BufferedReader, InputStreamReader y Exception.


leavecomment

*Hasta que esta leyenda no desaparezca el libro no ha sido terminado, descarge en pdf:

http://compunauta.com/forums/linux/programacion/java/ebook.html




Aprendiendo Java - Ejemplos resueltos, Ejercicios, prácicas y técnicas de programación con Java #1 - ezine - ©Compunauta - myblog - Anuncios - 1072