Leitura e gravação de entrada do usuário em Java
1. Introdução
Neste tutorial rápido, vamosdemonstrate several ways to use a console for user input and output in Java.
Vamos dar uma olhada em alguns métodos da classeScanner para lidar com a entrada e, em seguida, mostrar algumas saídas simples usandoSystem.out.
Finalmente, veremos como usar a classeConsole, disponível desde Java 6, para entrada e saída do console.
2. Lendo deSystem.in
Para nossos primeiros exemplos, vamosuse the Scanner class in the java.util package to obtain the input from System.in - o fluxo de entrada “padrão”:
Scanner scanner = new Scanner(System.in);
Vamosuse the nextLine() method to read an entire line of input as a Stringe avançar para a próxima linha:
String nameSurname = scanner.nextLine();
Também podemosuse the next() method to get the next input token do fluxo:
String gender = scanner.next();
Se estamos esperando entradas numéricas, podemosuse nextInt() to get the next input as an int primitivos e, da mesma forma, podemosuse nextDouble() to get a variable of type double:
int age = scanner.nextInt();
double height = scanner.nextDouble();
O sclassScanner também oferecehasNext_Prefix() methods which return true if the next token can be interpreted as a corresponding data type.
Por exemplo, podemos usarhasNextInt() method para verificar se o próximo token pode ser interpretado como um inteiro:
while (scanner.hasNextInt()) {
int nmbr = scanner.nextInt();
//...
}
Além disso, podemos usar o método hasNext(Pattern pattern) paracheck if the following input token matches a pattern:
if (scanner.hasNext(Pattern.compile("www.example.com"))) {
//...
}
Além de usar a classeScanner,we can also use an InputStreamReader with System.in to get the input from the console:
BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in));
E então podemos ler a entrada e analisá-la para um número inteiro:
int i = Integer.parseInt(buffReader.readLine());
3. Escrevendo paraSystem.out
Para a saída do console, podemos usarSystem.out — an instance of the PrintStream class, que é um tipo deOutputStream.
Em nosso exemplo, usaremos a saída do console para fornecer um prompt para a entrada do usuário e exibir uma mensagem final para um usuário.
Vamosuse the println() method to print a String and terminate the line:
System.out.println("Please enter your name and surname: ");
Como alternativa, podemosuse the print() method, which works similarly to println(), but without terminating the line:
System.out.print("Have a good");
System.out.print(" one!");
4. Usando a classeConsole para entrada e saída
No JDK 6 e posterior, podemos usar oConsole class dejava.io package para ler e gravar no console.
Para obter um objetoConsole, chamaremosSystem.console():
Console console = System.console();
A seguir, vamos usar o métodoreadLine() do sclassConsole parawrite a line to the console and then read a line from the console:
String progLanguauge = console.readLine("Enter your favourite programming language: ");
Se precisarmos ler informações confidenciais, como uma senha, podemos usar o métodoreadPassword() paraprompt a user for a password and read the password from the console with echoing disabled:
char[] pass = console.readPassword("To finish, enter password: ");
Também podemosuse the Console class to write output to the console, for example, using the printf() method com um argumentoString:
console.printf(progLanguauge + " is very interesting!");
5. Conclusão
Neste artigo, mostramos como usar várias classes Java para executar entrada e saída do usuário do console.
Como sempre, os exemplos de código deste tutorial são fornecidosover on GitHub.