欢迎访问宙启技术站
智能推送

如何在Java中使用标准输入函数?

发布时间:2023-06-24 15:46:00

在Java中使用标准输入函数,需要使用Java的输入流(InputStream)来读取标准输入数据。标准输入数据是通过键盘输入的数据,在Java中可以通过System.in对象来获取标准输入流。下面介绍如何在Java中使用标准输入函数。

1.使用Scanner类读取标准输入数据

Scanner类是Java中常用的读取输入数据的类,通过Scanner类的构造函数可以实例化一个Scanner对象,然后可以使用Scanner对象读取标准输入数据,示例代码如下:

import java.util.Scanner;

public class StdinDemo {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            System.out.println("input: " + line);
        }
        scanner.close();
    }
}

上述代码中,使用Scanner的构造函数创建了一个Scanner对象,并将标准输入流System.in作为参数传递给Scanner构造函数。然后使用while循环来不断读取标准输入数据,每次读取一行数据,并输出到控制台。

2.使用BufferedReader类读取标准输入数据

除Scanner类外,Java中还有另一种读取输入数据的类BufferedReader,通过BufferedReader可以高效地读取输入数据。示例代码如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class StdinDemo {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println("input: " + line);
        }
        reader.close();
    }
}

上述代码中,使用BufferedReader的构造函数创建了一个BufferedReader对象,并将标准输入流System.in作为参数传递给BufferedReader构造函数。然后使用while循环来不断读取标准输入数据,每次读取一行数据,并输出到控制台。

需要注意的是,使用BufferedReader读取输入数据时需要处理IOException异常。

3.使用DataInputStream类读取标准输入数据

除Scanner和BufferedReader外,Java中还有另一种读取输入数据的类DataInputStream,通过DataInputStream类可以读取各种基本数据类型。示例代码如下:

import java.io.DataInputStream;
import java.io.IOException;

public class StdinDemo {

    public static void main(String[] args) throws IOException {
        DataInputStream dis = new DataInputStream(System.in);
        int i = dis.readInt();
        boolean b = dis.readBoolean();
        double d = dis.readDouble();
        System.out.printf("i=%d, b=%s, d=%.2f
", i, b, d);
        dis.close();
    }
}

上述代码中,使用DataInputStream的构造函数创建了一个DataInputStream对象,并将标准输入流System.in作为参数传递给DataInputStream构造函数。然后使用readInt、readBoolean、readDouble方法分别读取整型、布尔型和双精度浮点型数据,并输出到控制台。

需要注意的是,使用DataInputStream读取输入数据时需要处理IOException异常。

总结起来,可以使用Scanner、BufferedReader和DataInputStream类来读取标准输入数据,各有优劣。对于输入数据量较少的情况,建议使用Scanner类;对于输入数据量较大的情况,建议使用BufferedReader类;对于读取各种基本数据类型的情况,建议使用DataInputStream类。