Heim >Java >javaLernprogramm >Warum gibt System.console() in Java Null zurück und wie kann ich Benutzereingaben zuverlässig erhalten?

Warum gibt System.console() in Java Null zurück und wie kann ich Benutzereingaben zuverlässig erhalten?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 05:51:16331Durchsuche

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

Zugriff auf Benutzereingaben mit System.console() in Java

Beim Verwenden der Console-Klasse zum Abrufen von Benutzereingaben kann ein Problem auftreten wobei System.console() einen Nullwert zurückgibt. Dies ist typischerweise darauf zurückzuführen, dass die Konsole in bestimmten Umgebungen nicht verfügbar ist, beispielsweise bei der Verwendung von Java in einer integrierten Entwicklungsumgebung (IDE).

Lösung:

1 . Verwenden Sie System.console() außerhalb einer IDE:

Wenn der Code außerhalb einer IDE ausgeführt werden soll, verwenden Sie den folgenden Ansatz:

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

2 . Verwenden Sie BufferedReader:

Alternativ können Sie BufferedReader zum Abrufen von Eingaben verwenden, was sowohl innerhalb als auch außerhalb einer IDE funktioniert:

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!");
        }
    }
}

Hinweis:

Es ist wichtig zu beachten, dass System.console() bei Verwendung in einer IDE null zurückgibt. Wenn die Verwendung von System.console() unbedingt erforderlich ist, lesen Sie bitte die von McDowell bereitgestellte Lösung.

Das obige ist der detaillierte Inhalt vonWarum gibt System.console() in Java Null zurück und wie kann ich Benutzereingaben zuverlässig erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn