Leitura de Arquivo.txt

4 respostas
I

Então, tenho que fazer um programa que cadastra e que busca num arquivo .txt, o cadastro tá dando certo, só a leitura que tá dando erro…
Na hora de ler, ele lê uma linha e pula outra, vai linha sim, linha não.
Segue o código:

File arquivo = new File("c:/Clientes.txt"); FileReader reader = new FileReader(arquivo); BufferedReader ler = new BufferedReader(reader); boolean busca = false; while(ler.readLine()!= null){ String[] texto = ler.readLine().split(": "); if(texto[0].equals(jComboBox1.getSelectedItem().toString())&& texto[1].equals(jTPesq.getText())){ jTAResultado.setText(jTAResultado.getText() + texto[1]); busca = true; } } if(busca == false){ JOptionPane.showMessageDialog(null, "Valor não Encontrado!"); }

Eu acho que é poque tem 2 ler.readLine(), mas não consegui resolver isso.
O Combobox tem (Id, Primeiro Nome, Sobrenome, etc…) e o jTPesq é onde eu digito o nome, id, etc que vou pesquisar.

Um exemplo do que tem no Arquivo Salvo:
Id: 01
Primeiro Nome: Igor
Sobrenome: Cenzi
CPF: [telefone removido]
RG: 123456789
Endereço: Rua X
Bairro: Bairro Y
Sexo: M
Telefone: 5555-6666
Nome do Pai: Pai
Nome da Mãe: Mãe


na minha pesquisa só aparece Primeiro Nome, CPF, Endereço, Sexo e Nome do Pai

e a outra parte do exercécio que eu não sei fazer é pra pegar o numero da página que o Valor que pesquisei foi encontrado.

Se alguém puder ajudar, eu agradeço muito

4 Respostas

CharlesAlves

// O erro está aqui, você lê uma linha mas não pega o seu valor while(ler.readLine()!= null){ // Agora você está lendo realmente a linha e capturando o seu valor String[] texto = ler.readLine().split(": "); if(texto[0].equals(jComboBox1.getSelectedItem().toString())&& texto[1].equals(jTPesq.getText())){ jTAResultado.setText(jTAResultado.getText() + texto[1]); busca = true; } }

O correto seria isso

String linha = null; // Lê a linha e verifica se o valor retornado é nulo while((linha = br.readLine()) != null){ // Faz o que tem que fazer com a linha que foi lida String[] texto = linha.split(": "); if(texto[0].equals(jComboBox1.getSelectedItem().toString())&& texto[1].equals(jTPesq.getText())){ jTAResultado.setText(jTAResultado.getText() + texto[1]); busca = true; } }

I

Valeu!!! Deu certo, só que quando eu procuro pelo primeiro Id, ele não encontra… os outros ele encontra… ele não tá lendo a primeira linha, eu tentei ir no arquivo e deixar a primeira linha em branco, daí ele achou, mas tem como eu fazer ele ler a primeira linha? E também, se souber, como eu faço pra pegar o numero da página que ele encontrou o valor? (Se tem como fazer isso neh, meu professor é meio louco kkkk)
Obrigado mesmo! :wink:

CharlesAlves

Era pra ele estar lendo a primeira linha também, da uma olhada se não tem nenhum readLine() antes do while, coloca o código depois da alteração pra eu dar uma olhada

I

Eu excluí o arquivo e cadastrei denovo, agora ele tá lendo, vlw ae Charles!

Criado 17 de maio de 2013
Ultima resposta 17 de mai. de 2013
Respostas 4
Participantes 2