首頁 >Java >java教程 >為什麼 Java 中 System.console() 回傳 Null,如何可靠地取得使用者輸入?

為什麼 Java 中 System.console() 回傳 Null,如何可靠地取得使用者輸入?

Barbara Streisand
Barbara Streisand原創
2024-12-10 05:51:16323瀏覽

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