Leitura de um arquivo txt

12 respostas
Warley_Duarte_Reis

Estou precisando de um ajuda para ler de um arquivo .txt, o que foi digitado na saida padrão ou um parte do texto. Fico grato.

12 Respostas

FeniX

Tem esse artigo aqui no GUJ mesmo, acho que pode te ajudar

http://www.guj.com.br/java.tutorial.artigo.13.1.guj

Warley_Duarte_Reis

Fenix, o artigo foi de muita ajuda.
Eu estou conseguindo abrir e ler o arquivo extensão txt, agora o que estou precisando e o seguinte:
Digito um palavra ou parte do texto, leio o arquivo e ele retorna a linha impressa, neste caso modo console, o texto percorrido no arquivo. As vezes não fui muito claro. Vou dar um exemplo, do tipo de arquivo que tenho.
n1900:Marcelo Henrique Garcia Rodrigues:108632:
n1902:Myriam Magalhães Santiago:365073:
n1903:Pedro Aurelio Ferreira Coutinho:182542:
n1904:Ramon Lincoln Veloso:753178:
n2106:Marcelo Vieira Rosa:257560:

então digito: marcelo
ele me retorna a linha
n1900:Marcelo Henrique Garcia Rodrigues:108632:
ou as linhas.
n2106:Marcelo Vieira Rosa:257560
n1900:Marcelo Henrique Garcia Rodrigues:108632:

akumaldo

Warley Duarte Reis:
Fenix, o artigo foi de muita ajuda.
Eu estou conseguindo abrir e ler o arquivo extensão txt, agora o que estou precisando e o seguinte:
Digito um palavra ou parte do texto, leio o arquivo e ele retorna a linha impressa, neste caso modo console, o texto percorrido no arquivo. As vezes não fui muito claro. Vou dar um exemplo, do tipo de arquivo que tenho.
n1900:Marcelo Henrique Garcia Rodrigues:108632:
n1902:Myriam Magalhães Santiago:365073:
n1903:Pedro Aurelio Ferreira Coutinho:182542:
n1904:Ramon Lincoln Veloso:753178:
n2106:Marcelo Vieira Rosa:257560:

então digito: marcelo
ele me retorna a linha
n1900:Marcelo Henrique Garcia Rodrigues:108632:
ou as linhas.
n2106:Marcelo Vieira Rosa:257560
n1900:Marcelo Henrique Garcia Rodrigues:108632:


Ele vai retornar todas as linhas que tiverem marcelo certo?
nossa não sei se dá para varrrer as linhas da String em busca de um nome…
Alguém que souber posta ai…não estou lembrado…mas acho que tem um metodo chamado contains que vai fazer isso…pesquisar nas linhas …mais ai se vai ter que implementar para ele pesquisar em cada linha e tals…MOOO TRABALHO! acho melhor você carregar antes seu arquivo para uma collection e depois trampar em cima

lucao

info_god:
Dpois que ler o arquivo (cada linha do arquivo)

//seu laco de repeticao aqui if (linha.contain("Marcelo")) { //Pega a linha =) }

O método não seria contains ?

Aqui eu faço assim:

Como o método contains só aceita um CharSequence. Primeiro eu implemento:

public class Sequencia implements CharSequence {
	
	String resultado;
	
	public Sequencia(String sequencia){
		resultado = sequencia;
	}

	public char charAt(int index) {
		return resultado.charAt(index);
	}

	public CharSequence subSequence(int start, int end) {
		return null;
	}

	public int length() {
		return resultado.length();
	}
	
	@Override
	public String toString() {
		return resultado;
	}
}

Agora para usar o método depois:

BufferedReader in = new BufferedReader(new FileReader(args[0]));
String linha;

while ((linha = in.readLine()) != null) {
	if (linha.contains(new Sequencia("Marcelo"))){
	    	System.out.println(linha);
	}
akumaldo

Mas CharSequence é um interface que implementa String não é??
então podemos mais fácilmente passar logo a string que queremos procurar para o metodo contains e pegar nas linhas o valor marcelo…
Correto??não entendi por que dá implementação que você fez :shock:

lucao

akumaldo:
Mas CharSequence é um interface que implementa String não é??
então podemos mais fácilmente passar logo a string que queremos procurar para o metodo contains e pegar nas linhas o valor marcelo…
Correto??não entendi por que dá implementação que você fez :shock:

ehhehe, eh que isso é de um programa antigo meu e eu não sabia direito :oops:

rmarin

akumaldo:
Mas CharSequence é um interface que implementa String não é??

Na verdade é o contrário String implementa CharSequence. :smiley:

akumaldo

rmarin:
akumaldo:
Mas CharSequence é um interface que implementa String não é??

Na verdade é o contrário String implementa CharSequence. :smiley:

SIIIIIIIIIIIM SIIIIIIIIIIIIM…vero vero…eu pensei certo e escrevi errado… :oops:

Warley_Duarte_Reis
Gostaria de agradeçer a todos, pela grande ajuda. Vou deixar meu codigo pra vc avaliarem e sugestoes são aceitas.
public class PesquisaNome{
	public static void main(String [] args){
		File bd = new File ("arq_destino.txt");
		int flag=0;
		if (bd.exists()){
			try{
				FileReader fr = new FileReader(bd);
				BufferedReader ler = new BufferedReader (fr);
				String temp="", a="", nome="";
				nome = JOptionPane.showInputDialog("Digite o Nome:");
				while ((temp = ler.readLine()) != null) {
					if (temp.contains(nome)){
						flag = 1;
						a = temp;
					}
				}
				if (flag == 1)
					/*for( int i=a.length();;)
						if()*/
					
					JOptionPane.showMessageDialog(null,a);
				else
					JOptionPane.showMessageDialog(null,"Nome não encontrado");
			}
			catch (IOException ex){
				JOptionPane.showMessageDialog(null, "Erro na leitura");
			} 
		}
		System.exit(1);
	}
}
rmarin

Oba, pode dar sugestão :smiley:

Aí vai…

Eu faria seu while utilizando o método ready() do BufferedReader:

while (ler.ready())

E também trocaria o tipo da variável flag para boolean. :thumbup:

I

Dpois que ler o arquivo (cada linha do arquivo)

//seu laco de repeticao aqui if (linha.contain("Marcelo")) { //Pega a linha =) }

I
lucao:
info_god:
Dpois que ler o arquivo (cada linha do arquivo)
//seu laco de repeticao aqui 
if (linha.contain("Marcelo")) {
    //Pega a linha =)
}

O método não seria contains ?

Aqui eu faço assim:

Como o método contains só aceita um CharSequence. Primeiro eu implemento:
public class Sequencia implements CharSequence {
	
	String resultado;
	
	public Sequencia(String sequencia){
		resultado = sequencia;
	}

	public char charAt(int index) {
		return resultado.charAt(index);
	}

	public CharSequence subSequence(int start, int end) {
		return null;
	}

	public int length() {
		return resultado.length();
	}
	
	@Override
	public String toString() {
		return resultado;
	}
}

Agora para usar o método depois:

BufferedReader in = new BufferedReader(new FileReader(args[0]));
String linha;

while ((linha = in.readLine()) != null) {
	if (linha.contains(new Sequencia("Marcelo"))){
	    	System.out.println(linha);
	}

Belo post..
Sim é contains.. 5 estrelas pra vc.

Criado 24 de julho de 2006
Ultima resposta 26 de jul. de 2006
Respostas 12
Participantes 6