image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Wellington Santos
Wellington Santos23/08/2023 16:57
Compartilhe

Lendo conteúdo de arquivo txt com 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
    Comentários (0)