image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Wellington Santos
Wellington Santos23/08/2023 16:57
Compartilhe
Nexa - Análise Avançada de Imagens e Texto com IA na AWSRecomendados para vocêNexa - Análise Avançada de Imagens e Texto com IA na AWS

Lendo conteúdo de arquivo txt com Java

  • #Java

Ler o conteúdo de um arquivo .txt em Java é simples.

Para esse exemplo, vamos supor que temos um arquivo chamado conteudo.txt em c:\temp, contendo os dias da semana, assim:

segunda

terça

quarta

quinta

sexta

sábado

domingo

1 - Criamos uma a classe ListarDiasSemana com o método main.

package application;

public class ListarDiasSemana {
  public static void main(String[] args) {
    //...
  }
}
         

2 - Para ler o conteúdo de um arquivo usamos a classe File do Java. A classe File encapsula toda a complexidade relacionada à manipulação de arquivos, provendo os métodos necessários para trabalharmos facilmente com qualquer tipo de arquivo.

Instanciamos um objeto do tipo File informando o diretório do arquivo que queremos ler.

package application;

import java.io.File;

public class ListarDiasSemana {
  public static void main(String[] args) {
  
    File file = new File("c:\\temp\\conteudo.txt");

  }
}

3 - Utilizamos a classe Scanner para ler o conteúdo do arquivo. Declaramos a variável sc iniciada com o valor null

package application;

import java.io.File;
import java.util.Scanner;

public class ListarDiasSemana {
  public static void main(String[] args) {
  
    File file = new File("c:\\temp\\conteudo.txt");
    Scanner sc = null;
    
  }
}

4 - Atribuímos o valor da variável sc um novo objeto do tipo Scanner, passando como parâmetro o local do arquivo armazenado na variável file. Essa ação é feita dentro de um bloco try/catch, pois a classe Scanner tentará abrir o arquivo e essa ação poderá gerar uma exception do tipo IOException.

package application;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class ListarDiasSemana {
  public static void main(String[] args) {
  
    File file = new File("c:\\temp\\conteudo.txt");
    Scanner sc = null;
    
    try {
      sc = new Scanner(file);
           
    } catch (IOException e) {  
      System.out.println("Error: " + e.getMessage());
    }
  }
}

5 - Utilizamos o while para ler cada linha do arquivo e imprimimos o conteúdo com o System.out.println

package application;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class ListarDiasSemana {
public static void main(String[] args) {

  File file = new File("c:\\temp\\conteudo.txt");
  Scanner sc = null;
  
  try {
    sc = new Scanner(file);
    
    while (sc.hasNextLine()) {
      System.out.println(sc.nextLine());
    }
      
  } catch (IOException e) {  
      System.out.println("Error: " + e.getMessage());
  }
}
}

6 - Por fim, incluímos um bloco finally para garantir que o nosso objeto Scanner será fechado, se existir.

package application;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class ListarDiasSemana {
public static void main(String[] args) {

  File file = new File("c:\\temp\\conteudo.txt");
  Scanner sc = null;
  
  try {
    sc = new Scanner(file);
    
    while (sc.hasNextLine()) {
      System.out.println(sc.nextLine());
    }
      
  } catch (IOException e) {  
      System.out.println("Error: " + e.getMessage());
  } finally {
    if (sc != null) {
      sc.close(); 
    }    
  }
}
}

2 - Ao rodar a aplicação o resultado será a lista dos dias da semana contidas no arquivo conteudo.txt

segunda
terça
quarta
quinta
sexta
sábado
domingo          

Mais detalhes sobre as classes File, Scanner e IOException na documentação oficial do Java:

Link projeto no github

Compartilhe
Recomendados para você
Deal - Spring Boot e Angular (17+)
Cognizant - Arquitetura com Spring Boot e Cloud
Claro - Java com Spring Boot
Comentários (0)
Recomendados para você