Ler todas as linhas de um arquivo txt

2 respostas
H

Tenho um método para ler todas as linhas de um arquivo txt. Se eu dou os valores pelo ide e executo pelo ide, ele funfa, se dou os valores pelo prompt de comando e executo pelo prompt, da erro.

public ArrayList<String> lerTodasLinhasDoTexto()
            throws IOException {
        ArrayList<String> linhas = new ArrayList();
        FileReader arq = new FileReader(localArquivo);
        BufferedReader lerArq = new BufferedReader(arq);
        String linha = lerArq.readLine();
        linhas.add(linha);

        while (linha != null) {
            linha = lerArq.readLine();
            linhas.add(linha);
        }
        arq.close();
        linhas.remove(linhas.size() - 1);
        return linhas;
    }

Pelos testes que fiz, ele não chega em FileReader arq = new FileReader(localArquivo);, ele cria o array e tals, mas depois do array ele não faz mais nada (isso pelo prompt).
Esse localArquivo é um atributo privado da classe que foi instanciado através do prompt e passado para a classe através de um construtor.

2 Respostas

J

Chega a dar alguma Exception?

Exemplo:

class Arquivos {
	private String localArquivo;

	public Arquivos(String localArquivo) {
		this.localArquivo = localArquivo;
	}

	public List<String> lerArquivo() throws IOException {
		List<String> linhas = new ArrayList<>();
		BufferedReader bR = new BufferedReader(new FileReader(localArquivo));
		String linha;
		while( (linha = bR.readLine()) != null){
			linhas.add(linha);
		}
		bR.close();
		return linhas;
	}
}

public class LerTxt {

	public static void main(String[] args) {
		
		try {
			List<String> linhas = new Arquivos("teste.txt").lerArquivo();
			linhas.stream().forEach(System.out::println);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
H

Cara, muito obrigado mesmo, coloquei para imprimir a IOException e apareceu o erro, testei algumas teorias aqui e achei o erro, tem mais de 3 semanas que estou trabalhando nesse projeto e não conseguia achar o erro, mudei variáveis ArrayList para List e vice-versa achando que esse era o erro, encapsulei, criei mais classes pra ficar organizado, etc.

E você ainda me deu uma dica, colocar pra imprimir a Exception e ver o erro, muito obrigado.

Criado 1 de dezembro de 2016
Ultima resposta 1 de dez. de 2016
Respostas 2
Participantes 2