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: