首页 >Java >java教程 >为什么 Java 中 System.console() 返回 Null,如何可靠地获取用户输入?

为什么 Java 中 System.console() 返回 Null,如何可靠地获取用户输入?

Barbara Streisand
Barbara Streisand原创
2024-12-10 05:51:16331浏览

Why Does System.console() Return Null in Java, and How Can I Get User Input Reliably?

在 Java 中使用 System.console() 访问用户输入

使用 Console 类检索用户输入时,您可能会遇到问题其中 System.console() 返回空值。这通常是由于控制台在某些环境中不可用,例如在集成开发环境 (IDE) 中使用 Java。

解决方案:

1 。在 IDE 外部使用 System.console():

如果代码打算在 IDE 外部运行,请使用以下方法:

System.out.print("Enter input: ");
String input = System.console().readLine();

2 。使用 BufferedReader:

或者,您可以使用 BufferedReader 进行输入检索,它可以在 IDE 内部和外部工作:

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

public class InputReader {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter string: ");
        String s = br.readLine();
        System.out.print("Enter integer: ");
        try {
            int i = Integer.parseInt(br.readLine());
        } catch(NumberFormatException nfe) {
            System.err.println("Invalid format!");
        }
    }
}

注意:

需要注意的是,System.console() 在用于IDE。如果必须使用System.console(),请参考McDowell提供的解决方案。

以上是为什么 Java 中 System.console() 返回 Null,如何可靠地获取用户输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn