Heim >Java >javaLernprogramm >Warum gibt System.console() in Java Null zurück und wie kann ich Benutzereingaben zuverlässig erhalten?
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!