Java如何使用Console类读取用户输入?

我们使用java.util.Scanner文件类来读取用户输入。在本例中,我们使用Java1.6中引入的另一个新类java.io.Console类。

Console类提供类似的方法readLine()和readPassword()。readPassword()方法可用于读取用户密码。使用这种方法,用户的输入将不会显示在控制台中。密码将以数组形式返回char。

package org.nhooo.example.io;

import java.io.Console;

public class ConsoleDemo {

    public static void main(String[] args) {
        // 获取控制台对象,如果不可用,console可以为null。
        Console console = System.console();

        if (console == null) {
            System.out.println("Console is not available.");
            System.exit(1);
        }

        // 从控制台读取用户名
        String username = console.readLine("Username: ");

        // 读取密码,密码将不会回显
        // 控制台屏幕,并以字符数组形式返回。
        char[] password = console.readPassword("Password: ");

        if (username.equals("admin") && String.valueOf(password).equals("secret")) {
            console.printf("Welcome to Java Application %1$s.%n", username);
        } else {
            console.printf("Invalid username or password.%n");
        }
    }
}

上面的代码片段的结果是:

Username: admin
Password:
Welcome to Java Application admin.