edsouzza 0 Denunciar post Postado Maio 1, 2018 Pessoal o método abaixo faz a leitura de arquivo txt onde pega os campos separados por (;) e carrega o meu objeto (objServidor) para então gravar no banco de dados. Ocorre que o campo que recebe a datainiexercicio (01/05/2018) por exemplo não esta rodando. Usei um metodo que formata a string e converte em data pois no objeto ela é uma data do tipo java.sql.Date. O método é o formatarData que retorna uma data.sql.date que deixei mais abaixo para verificação de o porque não esta aceitando esta data. Testei os outros campos e esta tudo funcionando menos a data. O meu banco de dados é o Firebidr 2.1 e o campo data esta como Date. Segue exemplo de uma linha o txt MIQUEIAS DA SILVA NORE;6964443;1;56;1;6;2;03/10/2000;ATIVO;* Quem puder ajudar agradeço. private void ImportarTXT(){ //inicializando as variaveis dos campos a serem gravados int totalLinhas = 0; RetornarQdeLinhasDoTxt qdeLinhas = new RetornarQdeLinhasDoTxt(); //setando o caminho do arquivo TXT no edit do formulario apenas para mostrar o arquivo que esta sendo importado SelecionarArquivoTexto select = new SelecionarArquivoTexto(); caminhoTXT = select.ImportarTXT(); if(caminhoTXT != null) { //setando o caminho do arquivo TXT na variavel caminhoTXT para pegar os valores txtARQUIVO.setText(caminhoTXT); totalLinhas = qdeLinhas.retornaNumLinhasDoTxt(caminhoTXT); //JOptionPane.showMessageDialog(null, "Qde de linhas do arquivo...: "+String.valueOf(totalLinhas)); //criando uma variavel arquivo do tipo File e setando o caminho do arquivo TXT nela File arquivo = new File(caminhoTXT); try { FileReader ler = new FileReader(arquivo); BufferedReader lerBuf = new BufferedReader(ler); linha = lerBuf.readLine(); while(linha != null) { nome = linha.split(";")[0]; rf = linha.split(";")[1]; svinculo = linha.split(";")[2]; cargobase = linha.split(";")[3]; departamento = linha.split(";")[4]; unidade = linha.split(";")[5]; tiposervidor = linha.split(";")[6]; datainiexercicio = linha.split(";")[7]; status = linha.split(";")[8]; obs = linha.split(";")[9]; //setando os valores no objeto do modelo objServidor.setNome(nome); objServidor.setRf(rf); objServidor.setVinculo(Integer.parseInt(svinculo)); objServidor.setCargobase(Integer.parseInt(cargobase)); objServidor.setDepartamento(Integer.parseInt(departamento)); objServidor.setUnidade(Integer.parseInt(unidade)); objServidor.setTiposervidor(Integer.parseInt(tiposervidor)); ========================================================================== objServidor.setDtinicioexercicio(formatarData(datainiexercicio)); ========================================================================== objServidor.setStatus(status); objServidor.setObs(""); //gravando no banco de dados, antes verifica se o rf já esta cadastrado e não grava se isso acontecer if(umMetodo.duplicidadeDeCadastro("TBLSERVIDORES", "rf", rf)){ //JOptionPane.showMessageDialog(null,"O ServidorComCargo "+nome+" já esta cadastrado!"); contador = 0; }else{ if (ctrlServidor.salvarServidor(objServidor)){ contador = 1; } } //lendo a proxima linha linha = lerBuf.readLine(); } } catch (Exception e) { JOptionPane.showMessageDialog(null,"Erro ao tentar ler o arquivo!"); } if (contador > 0){ JOptionPane.showMessageDialog(null,"Os dados foram importados com sucesso!"); }else if (contador == 0){ JOptionPane.showMessageDialog(null,"Nenhum registro foi cadastrado com sucesso!","Atenção possíveis erros de leitura ou duplicidades!",2); } } contador = 0; } public Date formatarData(String data) throws Exception { if (data == null || data.equals("")) return null; Date date = null; try { DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); date = (Date)(java.util.Date)formatter.parse(data); } catch (ParseException e) { throw e; } return date; } Compartilhar este post Link para o post Compartilhar em outros sites