elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Flujo de Datos con InputStreamReader
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Flujo de Datos con InputStreamReader  (Leído 1,999 veces)
SDCC

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Flujo de Datos con InputStreamReader
« en: 25 Septiembre 2018, 19:22 pm »

Muy buenas tardes, dias o noches.He estado investigando sobre la gran variedad de clases que existen en java para el manejo de flujos, se me presento el problema de leer carácter ingresados desde la consola y lo realice con el siguiente código:

Código
  1. import java.io.*;
  2. class prueba{
  3.  
  4.    public static void main(String args[]){
  5.  
  6.        try{
  7.  
  8.           char c;
  9.           InputStreamReader leer = new InputStreamReader(System.in);
  10.  
  11.            System.out.println("Ingresa Caracter 1: ");
  12.  
  13.            c= (char)leer.read();
  14.            leer.read();
  15.            leer.read();
  16.  
  17.            System.out.println("Caracter Ingresado: " +c);
  18.            System.out.println("Ingresa Caracter 2: ");
  19.            c= (char)leer.read();
  20.            System.out.println(leer.read());    //Nueva Linea
  21.            System.out.println(leer.read());    //Retorno de carro
  22.  
  23.  
  24.  
  25.            System.out.println("Caracter Ingresado: " +c);
  26.  
  27.            System.out.println("Ingresa Caracter 3: ");
  28.            c= (char)leer.read();
  29.            leer.read();
  30.            leer.read();
  31.            System.out.println("Caracter Ingresado " +c);
  32.        */    
  33.  
  34.        }catch(Exception e){
  35.            System.out.println("Error"+e);
  36.        }
  37.  
  38.    }
  39. }
  40.  

Al finalizar el programa logre capturar caracteres ingresados por consola pero me creo desconfianza el hecho de que necesitara 3 métodos read() para recolectar un carácter.Entiendo que el primer read es para obtener el carácter que deseamos, el segundo seria para recoger el "Enter" o carácter de nueva linea , pero cuando llegamos al 3er read realmente ya no sé por que es necesario.Investigando un poco mas he decidido agregar en el código 2 System.out.println(leer.read()) justo después de que leo el segundo carácter para intentar descifrar que es lo que realmente esta capturando.Efectivamente el programa me regreso dos valores numéricos que al yo relacionarlos con un valor de unicode di a la conclusión de que era el valor tanto del carácter de nueva linea , asi como el de retorno de esta manera tendría que para leer un carácter se necesita en realidad leer 3 caracteres para no dejar valores basura.El primero seria para el carácter que deseamos, el segundo para el carácter de nueva linea y el tercero para el carácter de retorno.

A partir de lo anterior no he comprendido por que en java al momento de escribir en consola realmente me esta colocando el carácter que  escribo, el carácter de nueva linea y el carácter de retorno de carro , cuando en otros lenguajes como en C  , recuerdo que simplemente bastaba con poner un getchar(); para recolectar el carácter de nueva linea y no tenia que preocuparme por un carácter de retorno debido a que el carácter de nueva linea ya era prácticamente una nueva linea con retorno de carro.De antemano les agradezco por el tiempo que les ha tomado leer esto y les agradecería si me podrian resolver esta duda


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Conocer buffer del flujo de datos (FileInputStream)
Java
Kerber0 5 5,668 Último mensaje 4 Diciembre 2008, 14:49 pm
por arlick
flujo de datos, C++
Programación C/C++
darkvidhack 3 4,442 Último mensaje 6 Febrero 2011, 11:18 am
por satu
Alguien está manipulando el flujo de datos y acapara la señal...
Redes
eviatan 3 2,902 Último mensaje 1 Octubre 2014, 19:03 pm
por eviatan
Hackeo de APIs y Flujo de datos
Hacking
Sigma Pain 1 2,600 Último mensaje 19 Agosto 2022, 21:51 pm
por .xAk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines