0Pricing
Java Academy · Aula

Lendo linhas

readLine e laços

Lendo linhas é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.

O método readLine

readLine() é o coração de BufferedReader. Ele lê caracteres até encontrar uma quebra de linha (a tecla Enter) e então retorna a linha como uma String.

O texto retornado não inclui o caractere de nova linha. Nesta lição, leremos uma ou várias linhas.

String line = br.readLine();

Lendo uma linha

Aqui está o caso mais simples: ler um nome e exibir uma saudação. readLine() bloqueia (aguarda) até que o usuário pressione Enter.

Como lê de System.in, este trecho pausa para aguardar a entrada do teclado e não pode ser executado automaticamente aqui.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
        String name = br.readLine();
        System.out.println("Welcome, " + name + "!");
    }
}

O que readLine retorna no fim

Quando não há mais entrada (fim do fluxo ou quando o usuário sinaliza EOF), readLine() retorna null em vez de uma String.

Este é um sinal crucial: verificar null é a forma de saber quando devemos parar de ler.

String line = br.readLine();
if (line == null) {
    System.out.println("No more input.");
}

Lendo até EOF

Para ler todas as linhas até o fim da entrada, repita o processo enquanto readLine() não for null. Esse padrão comum atribui o valor e faz a verificação na mesma condição.

A cada repetição, você recebe a próxima linha, até que null encerre o ciclo corretamente.

String line;
while ((line = br.readLine()) != null) {
    System.out.println("Got: " + line);
}

Um leitor de várias linhas

Aqui está um programa completo que exibe novamente cada linha digitada até o fim do fluxo.

Ele lê de System.in, portanto aguarda a entrada e não pode ser executado automaticamente, mas o padrão do ciclo é exatamente o que você reutilizará.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println("Echo: " + line);
        }
    }
}

Contando linhas

Você pode realizar um trabalho dentro do ciclo, como contar. Aqui, contabilizamos quantas linhas chegam.

Cada iteração lê uma nova linha e incrementa um contador. Quando a entrada termina, exibimos o total.

int count = 0;
String line;
while ((line = br.readLine()) != null) {
    count++;
}
System.out.println("Lines read: " + count);

Linhas vazias e nulo

Tenha cuidado: uma linha vazia (quando o usuário apenas pressiona Enter) retorna "", uma String vazia — não null.

Assim, "".equals(line) significa uma linha em branco, enquanto line == null significa que a entrada realmente terminou. São situações diferentes.

if (line == null) {
    // input finished
} else if (line.isEmpty()) {
    // user pressed Enter on a blank line
}

Simulando linhas sem a entrada padrão

Para ver readLine() em ação sem usar a entrada do teclado, podemos alimentar um BufferedReader com um StringReader. O programa pode ser executado diretamente.

A cadeia de caracteres contém duas linhas separadas por \n, e o ciclo exibe cada uma delas.

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new StringReader("apple\nbanana"));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println("Fruit: " + line);
        }
    }
}

Removendo espaços em branco

A entrada costuma conter espaços supérfluos. Use trim() para remover os espaços em branco iniciais e finais de uma linha antes de usá-la.

Isso mantém as comparações e as conversões confiáveis, especialmente quando os usuários adicionam espaços acidentalmente.

import java.io.BufferedReader;
import java.io.StringReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
            new BufferedReader(new StringReader("  hello  \n"));
        String line = br.readLine().trim();
        System.out.println("[" + line + "]");
    }
}

Lendo um número fixo de linhas

Às vezes, você sabe a quantidade de linhas de antemão. Um ciclo for lê exatamente esse número de linhas.

Isso é comum quando um problema diz: “o primeiro número informa quantas linhas vêm em seguida”.

for (int i = 0; i < 3; i++) {
    String item = br.readLine();
    System.out.println(i + ": " + item);
}

Hábitos essenciais para readLine

Lembre-se destes hábitos:

  • Sempre verifique se o valor é null antes de usar uma linha.
  • Use trim() quando espaços supérfluos puderem causar erros.
  • Uma cadeia vazia não é igual a null.

A seguir, transformaremos essas linhas em números.

Verificação rápida

O que readLine() retorna quando o fluxo de entrada chega ao fim?

Recapitulação

Você aprendeu a ler linhas individuais, repetir com while ((line = br.readLine()) != null) e diferenciar uma linha em branco ("") do fim da entrada (null).

Você também viu exemplos executáveis usando StringReader. A seguir: transformar linhas de texto em números.

Perguntas Frequentes

A aula “Lendo linhas” é grátis?

Sim — o texto completo de “Lendo linhas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.

O que vou aprender em “Lendo linhas”?

readLine e laços Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Java Academy?

Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Lendo linhas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Java Academy?

Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que usar BufferedReader
  2. Lendo linhas
  3. Analisando números da entrada
  4. Fechando fluxos com segurança
← Voltar para Java Academy