如何在Java中使用readline()方法?

时间:2011-12-19 11:06:38

标签: java io readline

我是Java的初学者,我正在阅读通过键盘上的readLine()方法为变量赋值的主题。书中给出的程序如下:

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

我想问以下问题:

  1. 在以下声明中做了什么?

    DataInputStream in = new DataInputStream(System.in);
    

    如果inDataInputStream的对象,那么新的内容以及上述声明右侧的声明是做什么的?

  2. 为什么使用不同的方法将整数值放入intnumber并将float值放入floatnumber?

4 个答案:

答案 0 :(得分:29)

使用BufferedReader和InputStreamReader类。

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

或使用java.util.Scanner类方法。

Scanner scan=new Scanner(System.in);

答案 1 :(得分:6)

DataInputStream只是InputStream上的装饰者(System.in是),它允许使用更方便的方法进行阅读。

关于Float.valueOf(),好吧,这很好奇,因为Float也有.parseFloat()。这里的代码使用Float抓取.valueOf(),使用float将其转换为原始.floatValue()类型,由于自动取消装箱,这对于Java 1.5+是不必要的。

正如其他答案所说,这些方法无论如何已经过时了。

答案 2 :(得分:5)

总结:我会小心你复制的代码。您可能正在复制恰好工作的代码,而不是精心选择的代码。

  

在intnnumber中,使用parseInt,在floatnumber中使用valueOf为什么会这样?

我没有理由看到。正如您所怀疑的那样,这是对API的不一致使用。


Java区分大小写,并且没有任何Readline()方法。也许你的意思是readLine()。

不推荐使用DataInputStream.readLine(),而使用BufferedReader.readLine();

但是,对于您的情况,我会使用Scanner类。

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

如果您想知道课程的内容,我建议您快速查看the Javadoc

答案 3 :(得分:2)

这将解释它,我认为......

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){
        }
    }
}