1. Wstęp
W tym krótkim samouczku pokażemy kilka sposobów używania konsoli do wprowadzania i wyprowadzania danych przez użytkownika w języku Java .
Przyjrzymy się kilku metodom klasy Scanner do obsługi danych wejściowych, a następnie pokażemy kilka prostych danych wyjściowych za pomocą System.out .
Na koniec zobaczymy, jak używać klasy Console , dostępnej od wersji Java 6, zarówno dla danych wejściowych, jak i wyjściowych konsoli.
2. Czytanie z System.in
Dla naszych pierwszych przykładach będziemy używać skanera klasa w java.util pakiet aby uzyskać wejście od System.in - „standardowego” strumienia wejściowego:
Scanner scanner = new Scanner(System.in);
Użyjmy metody nextLine () , aby odczytać cały wiersz danych wejściowych jako ciąg znaków i przejść do następnego wiersza:
String nameSurname = scanner.nextLine();
Możemy również użyć metody next () , aby pobrać następny token wejściowy ze strumienia:
String gender = scanner.next();
Jeśli spodziewamy się liczbowych danych wejściowych, możemy użyć nextInt (), aby uzyskać następne dane wejściowe jako prymityw typu int i podobnie, możemy użyć nextDouble (), aby uzyskać zmienną typu double :
int age = scanner.nextInt(); double height = scanner.nextDouble();
Scanner klasy oferuje również hasNext_Prefix () metod, które zwracają prawda jeśli następny znak może być interpretowane jako odpowiadającego typu danych .
Na przykład możemy użyć hasNextInt ()metoda, aby sprawdzić, czy następny token można zinterpretować jako liczbę całkowitą:
while (scanner.hasNextInt()) { int nmbr = scanner.nextInt(); //... }
Możemy również użyć metody hasNext (Pattern pattern) , aby sprawdzić, czy następujący token wejściowy pasuje do wzorca :
if (scanner.hasNext(Pattern.compile("www.baeldung.com"))) { //... }
Oprócz używania klasy Scanner , możemy również użyć Input StreamReader z System.in, aby uzyskać dane wejściowe z konsoli :
BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in));
Następnie możemy odczytać dane wejściowe i przeanalizować je na liczbę całkowitą:
int i = Integer.parseInt(buffReader.readLine());
3. Pisanie do System.out
Jako wyjście konsoli możemy użyć System.out - instancji klasy PrintStream , która jest typem OutputStream .
W naszym przykładzie użyjemy danych wyjściowych konsoli, aby zapewnić monit o wprowadzenie danych przez użytkownika i wyświetlić ostateczną wiadomość użytkownikowi.
Użyjmy metody println () , aby wydrukować String i zakończyć linię :
System.out.println("Please enter your name and surname: ");
Alternatywnie możemy skorzystać z metody print () , która działa podobnie do println () , ale bez przerywania linii :
System.out.print("Have a good"); System.out.print(" one!");
4. Używanie klasy konsoli do wprowadzania i wyprowadzania
W JDK 6 i nowszych możemy używać klasy Console z pakietu java.io do odczytu i zapisu na konsoli.
Aby uzyskać obiekt Console , wywołamy System.console () :
Console console = System.console();
Następnie użyjmy metody readLine () klasy Console, aby napisać wiersz do konsoli, a następnie odczytać wiersz z konsoli :
String progLanguauge = console.readLine("Enter your favourite programming language: ");
Jeśli potrzebujemy odczytać poufne informacje, takie jak hasło, możemy użyć metody readPassword () , aby zapytać użytkownika o hasło i odczytać hasło z konsoli z wyłączonym echo :
char[] pass = console.readPassword("To finish, enter password: ");
Możemy również korzystać z konsoli klasę do wyjścia zapisu do konsoli, na przykład, za pomocą printf () metody z String argumentu:
console.printf(progLanguauge + " is very interesting!");
5. Wniosek
W tym artykule pokazaliśmy, jak używać kilku klas Java do wykonywania operacji wejścia i wyjścia użytkownika konsoli.
Jak zawsze, przykłady kodu z tego samouczka są udostępniane w witrynie GitHub.