Galera pelo amor de deus me ajudem… Seguinte, eu preciso de um resultado de busca em Java, os dados vem em TXT, de um banco de dados em COBOL. Seguinte, quando vem o TXT fica mais ou menos assim essa bagunça.
nome(25), telefone(8), endereço(20).
DENIS CARVALHO SILVA ;22226588;EXEMPLO DE ENDEREÇO
No resultado tem que sair.
NOME: DENIS CARVALHO SILVA
TELEFONE: 22226588
ENDEREÇO: EXEMPLO DE ENDEREÇO
Como funciona. é armazenado em Colunas e cada pedaço será delimitado por um “;” como posso ler o arquivo TXT e depois separar as informações? O resultado precisa ser em uma pagina HTML, mas até ai, preciso resolver esse problema primeiro.
VLW
Cara, fiz algo pareceido recentemente em java e utilizei o split. Crei um array String recebendo os dados lido da linha dando o split pelo caracter para quebrar as informações…
Aqui na empresa nao abre o Link rs rs rs.
Mas eu to pensando em fazer ± isso, só nao sabia como… acho que isso pode me ajudar…
por exemplo.
Vou sempre dar um novo objeto a cada linha. Cada parte da linha vai para um atributo do objeto… (Acho que ficaria mais organizado…)
Porém, se a cada linha terá um objeto, hoje ja tem 576 linhas, logo… 576 objetos com uns 35 atributos cada… Será que pesa? Quanto?
Porque… se eu for fazer uma busca, por tal atributo…
Nome == tal…
E ja envia todos os objetos para uma pilha e imprime tudo…
Ficaria muito pesado? ou só testando mesmo?
Bom, eu tenho a proposta de fazer isso em asp… asp antigo mesmo, creio que seja muito mais pesado…
Crie um leitor, que devolva uma collection de objetos do tipo Pessoa:
importjava.io.File;importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;publicclassLeitor{publicList<Pessoa>obterPessoas()throwsException{List<Pessoa>listaPessoas=newArrayList<Pessoa>();Pessoapessoa=null;Stringarquivo="";// coloque aqui a localização do arquivo// o "cara" que vai ler o arquivo....Scannerscan=newScanner(newFile(arquivo));while(scan.hasNext()){Stringlinha=scan.nextLine();// Cria um array, usando o ";" como separadorString[]arrayLinha=linha.split(";");// Obtem as informações baseado na posição no array:pessoa=newPessoa();pessoa.setNome(arrayLinha[0]);pessoa.setTelefone(arrayLinha[1]);pessoa.setEndereco(arrayLinha[2]);//adiciona a pessoa no listlistaPessoas.add(pessoa);}returnlistaPessoas;}}
Deu um erro: Leitor@19821f
Estou chamando errado certo? Não vi Array List ainda…
C
candido.areas
Você vai precisar iterar lista, ou seja: vai colocar o resultado dela dentro de um laço, como um for por exemplo:
importjava.util.logging.Level;importjava.util.logging.Logger;publicclassTeste{publicstaticvoidmain(String[]args){try{Leitorarquivo=newLeitor();// este for é mais simples. ja digo que vou "pegar" um objeto pessoa para cada indice da lista devolvida.for(Pessoapessoa:arquivo.obterPessoas()){System.out.println(pessoa.getNome());System.out.println(pessoa.getTelefone());System.out.println(pessoa.getEndereco());System.out.println("------------------------");}}catch(Exceptionex){Logger.getLogger(Teste.class.getName()).log(Level.SEVERE,null,ex);}}}
Espero estar contribuindo. Um abraço.
denisspitfire
Pessoal, não consegui acompanhar o raciocinio. Tive que dar uma mudada nos arquivos.
Fiz um prototipo de ± como vai ser.
programaDeTeste
Minha idéia é a seguinte, cada obj caracteristica terá um vetor de Strings que cada indice será uma caracteristica. Então eu vou poder ler um documento que virá assim.
O documento ficará em Caracteristicas/caracteristicas.txt
Como eu posso ler somente linha por linha? é o hasNext();?
Não entendi essa parte. Sorry… se alguem puder me ajudar
vlw pela ajuda até aqui, me exclareceu bem a minha duvida
denisspitfire
Por favor…alguem me ajuda ae… uma dica qualquer coisa. Tentei tutoriais mas não quero CTRL+C, só preciso entender como ler um arquivo txt, mas linha por linha… alguem pode me ajudar?
Voce pode usar a classe Scanner tambem. e os metodos nextLine e hasNextLine.
Depois, para cada linha, usar o metodo split da String conforme ja falaram aqui.
denisspitfire
Só estou com um problema. Não consigo ler o arquivo no mesmo diretório… ele le sempre um txt que tem no c:
como posso fazer para ele ler somente oque esta no meu diretorio principal?
denisspitfire
Ae pessoal, consegui… Vlw pela ajuda. Segue o código abaixo para quem quiser ver como ficou.