se tiver outro cod para importação de arquivo csv ou xml já ajuda…
obrigado
S
staroski
É que você está chamando o método nextLine() sem ter verificado se o hasNextLine() é verdadeiro.
Dei uma pequena refatorada pro seu código ficar mais legível:
publicvoidimportarArquivoCsv(){FilearquivoCSV=newFile("K:\\arquivo\\protocolo.csv");if(arquivoCSV.exists()){System.out.println("File exists!");lerArquivoCsv(arquivoCSV);}else{System.out.println("File doesn’t exist!");}}privatevoidlerArquivoCsv(FilearquivoCSV){System.out.println("executando");ProtocoloJpaDAOdao=ProtocoloJpaDAO.getInstance();System.out.println("excluir protoclos");dao.removeAll();System.out.println("iniciar");try(Scannerscan=newScanner(arquivoCSV)){if(!scan.hasNextLine()){return;// não tem a primeira linha no arquivo}scan.nextLine();if(!scan.hasNextLine()){return;// não tem a segunda linha no arquivo}scan.nextLine();System.out.println(arquivoCSV);System.out.println("inserindo");while(scan.hasNext()){Stringlinha=scan.nextLine();String[]valores=linha.split(";");if(valores[0].length()>0){Protocoloprotocolo=criarProtocolo(valores);dao.merge(protocolo);}}scan.close();}catch(Exceptione){e.printStackTrace();}}privateProtocolocriarProtocolo(String[]valores){Protocoloprotocolo=newProtocolo();protocolo.setCd(valores[0]);protocolo.setProtocolo(valores[1]);protocolo.setData(valores[2]);protocolo.setCod_produto(valores[3]);protocolo.setDescricao(valores[4]);protocolo.setQtd_dev(valores[5]);protocolo.setVlr_dev(valores[6]);protocolo.setNf_venda(valores[7]);protocolo.setDta_venda(valores[8]);protocolo.setPromo(valores[9]);protocolo.setQtd_venda(valores[10]);protocolo.setVlr_venda(valores[11]);protocolo.setMotivo_dev(valores[12]);protocolo.setDesc_dev(valores[13]);protocolo.setCod_dev(valores[14]);protocolo.setDesc_motivo(valores[15]);protocolo.setJustificativa(valores[16]);protocolo.setCod_cliente(valores[17]);protocolo.setRazao(valores[18]);protocolo.setSetor(valores[19]);protocolo.setSupervisor(valores[20]);protocolo.setCod_representante(valores[21]);protocolo.setRepresentante(valores[22]);protocolo.setRota_roteiro(valores[23]);protocolo.setStatus_protocolo(valores[24]);protocolo.setAutorizacao_log(valores[25]);protocolo.setDta_autorizacao_log(valores[26]);protocolo.setAutorizador_coleta(valores[27]);protocolo.setDta_aut_coleta(valores[28]);protocolo.setResponsavel_reprova(valores[29]);protocolo.setDta_reprova(valores[30]);protocolo.setMotivo_reprova(valores[31]);protocolo.setEm_conferencia(valores[32]);protocolo.setColetado(valores[33]);protocolo.setDta_coletado(valores[34]);protocolo.setDta_chegada(valores[35]);protocolo.setDigitacao(valores[36]);protocolo.setDta_digitacao(valores[37]);protocolo.setUpload(valores[38]);protocolo.setDev_total(valores[39]);protocolo.setProtocolo_reenviado(valores[40]);protocolo.setProtocolo_ant(valores[41]);protocolo.setTipo_devolucao(valores[42]);protocolo.setAutorizacao_coleta(valores[43]);protocolo.setCd(valores[44]);protocolo.setDta_autorizacao(valores[45]);returnprotocolo;}
T
ThiagoNapoleao
boa noite
mesmo assim não faz a importação. ele para na primeira verificação.
“excluir protoclos
jun 01, 2018 10:50:01 PM org.hibernate.ejb.internal.EntityManagerFactoryRegistry addEntityManagerFactory
WARN: HHH000436: Entity manager factory name (crudHibernatePU) is already registered. If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name’
Hibernate: TRUNCATE protocolo
iniciar
não tem a primeira linha no arquivo”
até arrumei o arquivo para conter a primeira linha, e mesmo assim não importou.
alguma ideia?
obrigado
tetei aplicar em outro arquivo e aparece o seguinte erro…
S
staroski
Veja a query, está tentando inserir a palavra reservada set.
T
ThiagoNapoleao
bom dia
consegui fazer o importe…
o minha dificuldade agora é fazer que a cada atualização no banco o campo txt traga a informação nova.
estou usando um tread para atualizar as informações, mas o campo txt não muda a informação, e também não da nenhum erro. mesmo eu zerando o campo txt e fazendo o for() novamente.
por mais que as informações mudem ele sempre trás a informação que ele buscou ao iniciar o frame.
o for() não consegue trazer a informação nova… trás sempre a informação que já buscou ao inicializar.
como faço para ele zerar a memoria e conseguir sobrepor as informações?
segue codigo do for()
public void teste(){
List pln = AtzJpaDAO.getInstance().findAll();