scanner read from clase java io readline

from - ¿Cómo usar el método readline() en Java?



java read line from console (5)

En resumen: tendría cuidado con el código que copia. Es posible que esté copiando código que funciona, en lugar de código bien elegido.

En intnumber, se usa parseInt y en floatnumber valueOf se usa ¿por qué?

No hay una buena razón para que yo pueda ver. Es un uso inconsistente de las API como sospecha.

Java Readline() mayúsculas y minúsculas, y no hay ningún método Readline() . Quizás te refieres a readLine ().

DataInputStream.readLine () está en desuso en favor de usar BufferedReader.readLine ();

Sin embargo, para su caso, usaría la clase de escáner.

Scanner sc = new Scanner(System.in); int intNum = sc.nextInt(); float floatNum = sc.nextFloat();

Si quieres saber lo que hace una clase, te sugiero que eches un vistazo rápido al Javadoc .

Soy principiante en Java y estaba leyendo el tema de dar valores a las variables a través del método readLine() desde el teclado. El programa para eso se da en el libro es el siguiente:

import java.io.DataInputStream class Reading { public static void main(String args[]) { DataInputStream in = new DataInputStream(System.in); int intnumber=0; float floatnumber=0.0f; try { system.out.println("enter an integer: "); intnumber = Integer.parseInt(in.readline()); system.out.println("enter a float number: "); floatnumber = Float.valueOf(in.readline()).floatvalue(); } // Rest of code

Quiero hacer las siguientes preguntas:

  1. ¿Qué se hace en la siguiente declaración?

    DataInputStream in = new DataInputStream(System.in);

    Si está in un objeto de DataInputStream , ¿qué es nuevo y qué hace la declaración en el lado derecho de la declaración anterior?

  2. ¿Por qué se han usado diferentes métodos para poner el valor entero en intnumber y el valor de float en floatnumber?


Esto lo explicará, creo ...

import java.io.*; class reading { public static void main(String args[]) throws IOException { float number; System.out.println("Enter a number"); try { InputStreamReader in = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(in); String a = br.readLine(); number = Float.valueOf(a); int x = (int)number; System.out.println("Your input=" + number); System.out.println("Your input in integer terms is = " + x); } catch(Exception e){ } } }


Le aconsejo que vaya con Scanner lugar de DataInputStream . Scanner está específicamente diseñado para este propósito e introducido en Java 5. Consulte los siguientes enlaces para saber cómo usar Scanner .

Ejemplo

Scanner s = new Scanner(System.in); System.out.println(s.nextInt()); System.out.println(s.nextInt()); System.out.println(s.next()); System.out.println(s.next());


Un DataInputStream es simplemente un decorador sobre un InputStream (que es System.in ) que permite leer usando métodos más convenientes.

En cuanto a Float.valueOf() , bueno, eso es curioso porque Float tiene .parseFloat() . Aquí el código toma un Float con .valueOf() que se convierte en el tipo float primitivo usando .floatValue() , que no es necesario con Java 1.5+ debido al auto unboxing.

Y como otras respuestas correctamente dicen, estos métodos están obsoletos de todos modos.


Utilice las clases BufferedReader y InputStreamReader.

BufferedReader buffer=new BufferedReader(new InputStreamReader(System.in)); String line=buffer.readLine();

O use los métodos de la clase java.util.Scanner .

Scanner scan=new Scanner(System.in);