Leitura e gravação de entrada do usuário em Java

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.