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:
¿Qué se hace en la siguiente declaración?
DataInputStream in = new DataInputStream(System.in);
Si está
in
un objeto deDataInputStream
, ¿qué es nuevo y qué hace la declaración en el lado derecho de la declaración anterior?¿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);