📜  java 包含密码输入 - Java (1)

📅  最后修改于: 2023-12-03 15:01:33.408000             🧑  作者: Mango

Java 包含密码输入

在 Java 中,有时我们需要从用户那里输入密码,并希望这些密码不会在控制台上显示出来。为了实现这个功能,Java 提供了两种方式来接收密码输入:

  • 使用 java.io.Console
  • 使用 java.util.Scanner
使用 java.io.Console 类

java.io.Console 类提供了从控制台读取字符和密码的方法。以下是一个使用 java.io.Console 类接收密码输入的例子:

import java.io.Console;

public class PasswordInputExample {
    public static void main(String[] args) {
        Console console = System.console();

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

        char[] passwordArray = console.readPassword("Enter your password: ");
        String password = new String(passwordArray);

        System.out.println("Password entered was: " + password);
    }
}

在上面的例子中,我们使用 System.console() 方法获取 Console 对象。如果 System.console() 返回 null,则说明控制台不可用。Console 对象的 readPassword 方法接收一个字符串参数,用于提示用户输入密码。这个方法返回一个 char 数组,这个数组包含了用户输入的密码,但不会在控制台上显示出来。

使用 java.util.Scanner 类

使用 java.util.Scanner 类也可以接收密码输入。以下是一个使用 java.util.Scanner 类接收密码输入的例子:

import java.util.Scanner;

public class PasswordInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter your password: ");
        String password = scanner.nextLine();

        System.out.println("Password entered was: " + password);
    }
}

在上面的例子中,我们创建了一个 Scanner 对象,并从标准输入流中读取输入。我们使用 nextLine() 方法读取一行输入,并将输入作为密码。

注意:这种方式不会隐藏密码,因此不建议在需要隐藏密码的情况下使用。如果需要隐藏密码,请使用 java.io.Console 类。

总结

使用以上两种方式都可以接收密码输入。如果需要隐藏密码,应该使用 java.io.Console 类。否则,使用 java.util.Scanner 类即可。

以上介绍了 Java 中如何包含密码输入,希望能对有需要的程序员有所帮助。