Como ler o conteudo de um arquivo texto de uma vez só?

8 respostas
danielbchaves

Eu já usei esse código para ler um arquivo

FileReader reader = new FileReader("arquivo.txt");

BufferedReader leitor = new BufferedReader(reader);  

leitor.readLine()

gostaria de saber se alguém conhece alguma forma de ler o conteúdo do arquivo todo de uma vez só, ao invés de ler linha por linha

[]s

8 Respostas

T

Por que é que você quer fazer isso?

danielbchaves

no meu caso preciso do conteúdo inteiro do arquivo antes de fazer qualquer coisa com ele… ou seja, preciso fazer um loop até que readLine não retorne mais nada guardando isso em um StringBuffer para depois trabalhar com ele…

aí pensei, “Por que preciso ler linha por linha ao invés de ler ele todo de uma vez?”

KWill

Só uma dica, dependendo do tamanho desse arquivo texto, pode ser que a JVM acabe ficando sem memória para carregar esse seu arquivo de texto inteiro na memória.

Inté.

danielbchaves

quanto à memória não vai ter problema, o arquivo não vai passar de 1 mega…

rodrigo_gomes

Olá,

Tente algo como;

BufferedReader br = new BufferedReader(new FileReader( new File("C:\\seuArquivoAqui.txt")));
	    char buf[] = new char[1048576];
	    br.read(buf);
	    String str = String.valueOf(buf).trim();
	    System.out.println(str);

Como vc disse que seus arquivos são de 1MB, coloquei 1048576 de buffer. Se você tiver arquivos maiores, tem que aumentar o buffer.

Tome isso como exemplo e adeque ao que vc precisa.

[]´s

[]´s

victorwss

rodrigo_gomes:
Olá,

Tente algo como;

BufferedReader br = new BufferedReader(new FileReader( new File("C:\\seuArquivoAqui.txt")));
	    char buf[] = new char[1048576];
	    br.read(buf);
	    String str = String.valueOf(buf).trim();
	    System.out.println(str);

Como vc disse que seus arquivos são de 1MB, coloquei 1048576 de buffer. Se você tiver arquivos maiores, tem que aumentar o buffer.

Tome isso como exemplo e adeque ao que vc precisa.

[]´s

[]´s

Um trim em um objeto String de 1 Mb é uma operação bem pesada. Use StringBuilder no lugar disso. Melhor ainda, implemente o seu próprio FileReader que já “come” os espaços do começo e do fim.

rodrigo_gomes

fala Victor, beleza cara?

É, como eu disse “Tome isso como exemplo e adeque ao que vc precisa”.
Foi só para servir de base pro cara :wink:

[]´s

victorwss

rodrigo_gomes:
fala Victor, beleza cara?

É, como eu disse “Tome isso como exemplo e adeque ao que vc precisa”.
Foi só para servir de base pro cara :wink:

[]´s

Sim, mas é importante deixar claro que sempre é possível melhorar ainda mais.

Abração.

Criado 20 de agosto de 2008
Ultima resposta 21 de ago. de 2008
Respostas 8
Participantes 5