Estou montando um programa para controle de ligações, no entanto, preciso também criar um importador de dados, de forma a importar todos os clientes para o meu banco de dados. Como vou fazer isso?? Tenho todos os clientes em planilhas excel, ou seja, em arquivos .txt separando os campos com “;” (ponto e vírgula). Estive utilizando a apostila da Caelum a respeito de Java.io, mas não atende minha necessidade pois preciso importar os dados definindo o tamanho de cada varredura dentro da mesma linha… Estou perdidinho… Alguém poderia me dar uma força??
publicStringnomArq;publiclertxttod(Stringarqv){{nomArq=arqv;}}publicStringlerArquivotexto(){Stringresult="";try{BufferedReaderbr=newBufferedReader(newFileReader(nomArq));Stringdados=" ";while((dados=br.readLine())!=null)// lendo texto{result=result+dados+"\n";}returnresult;}catch(IOExceptionioe){JOptionPane.showMessageDialog(null,"Erro de leitura no arquivo "+nomArq+"'","Mensagem",JOptionPane.PLAIN_MESSAGE);result="";}returnresult;}
Na verdade eu quero importar a partir do arquivo texto, não do arquivo em estrutura Excel… A intenção é, além de importar, aprender a manipular arquivos texto.
Lindberg,
Sua instrução me ajuda apenas a abrir o arquivo e realizar a leitura de uma linha inteira, preciso ler o arquivo em “colunas”, exemplo: Leia até encontrar “;”, daí faça tal coisa… entendeu??
Agradeço a ajuda, abraços…
fcoury
thundercas,
Eu escrevi uma biblioteca que automatiza exatamente isso, dá uma olhada se te ajuda:
Mas se voce usar while, substring, length em cada linha que for lida, enfim criar algo que vai ti ajudar
com certeza … voce vai conseguir isso garanto !!!
Abraço e sucesso !!!
t+
D
djeico
Bom dia.
Sei que o tópico é antigo, mas acho útil postar a solução para o que o amigo solicitou:
//Classe LerArquivoimportjava.io.BufferedReader;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.util.NoSuchElementException;importjava.util.Scanner;publicclassLerArquivo{//Recebe o caminho completo do arquivo a ser "lido"publicvoidler(Stringdiretorio)throwsFileNotFoundException{Filearquivo=newFile(diretorio);// variáveis que receberão cada "coluna" do meu arquivo// se tenho 3 colunas preciso de 3 variáveis (ex.: nome;sobrenome;idade;)intvariavel1;Stringvariavel2;Doublevariavel3;try{if(arquivo.exists()){if(arquivo.canRead()){// aqui diga qual o separador utilizado no seu arquivo: ; por exemplo// exemplo: nome;sobrenome;idade; etc...Scannerscanner=newScanner(newFileReader(arquivo)).useDelimiter(";");while(scanner.hasNext()){variavel1=scanner.nextInt();variavel2=scanner.next();variavel3=scanner.nextDouble();// e quantas outras forem necessárias}// se der erro no arquivo, entao informa ao usuário}else{System.out.println("O arquivo \""+arquivo+"\" não foi encontrado.");}}else{System.out.println("O arquivo \""+arquivo+"\" não foi encontrado.");}}catch(NumberFormatExceptionmsg){System.out.println("Erro na conversão dos dados: "+msg.getMessage());}catch(NoSuchElementExceptionmsg){System.out.println("Conteúdo inválido!\nVerifique o conteúdo e o layout e tente novamente."+msg.getMessage());}}}//Mainimportjava.io.IOException;importPersistencia.LerArquivo;publicclassPrincipal{publicstaticvoidmain(String[]args)throwsIOException{LerArquivola=newLerArquivo();// passando o nome e local do arquivo a ser importadola.leitor("c:\temp\grafo.txt");}}
… bom, espero que isso ajude alguém.
Se alguém quiser me corrigir em algo eu agradeço.