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.
Leitura de um arquivo txt
12 Respostas
Tem esse artigo aqui no GUJ mesmo, acho que pode te ajudar
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:
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
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);
}
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:
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:
Mas CharSequence é um interface que implementa String não é??
Na verdade é o contrário String implementa CharSequence. 
Mas CharSequence é um interface que implementa String não é??
Na verdade é o contrário String implementa CharSequence.
![]()
SIIIIIIIIIIIM SIIIIIIIIIIIIM…vero vero…eu pensei certo e escrevi errado… :oops:
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);
}
}
Oba, pode dar sugestão 
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:
Dpois que ler o arquivo (cada linha do arquivo)
//seu laco de repeticao aqui
if (linha.contain("Marcelo")) {
//Pega a linha =)
}
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.