Bom dia pessoal, tenho um metodo que lê um arquivo csv, ele esta funcionando em partes. Estou tentando ler um arquivo que contem 24 colunas, porem ele só esta reconhecendo 22. Nao estou conseguindo evoluir quanto a isso.
voces podem me ajudar?
segue o metodo:
try {
JFileChooser abrir = new JFileChooser();
int retorno = abrir.showOpenDialog(null);
if (retorno==JFileChooser.APPROVE_OPTION) {
String caminho = abrir.getSelectedFile().getAbsolutePath();
diretorioMaterial.setText(caminho);
}
BufferedReader br = new BufferedReader(new FileReader(new File(diretorioMaterial.getText())));
List<String[]> elements = new ArrayList<String[]>();
String line = null;
while((line = br.readLine())!=null) {
String ret[];
ret = line.split(";");
elements.add(ret);
}
br.close();
String[] columNames = new String[] {
"CODIGO_TISS ",
"NOME_COMERCIAL ",
"DESCRICAO_PRODUTO ",
"ESPECIALIDADE_PRODUTO ",
"CLASSIFICACAO_PRODUTO_ANVISA ",
"APRESENTACAO_COMERCIAL ",
"UNIDADE_FRACAO ",
"CNPJ_FABRICANTE ",
"DETENTOR_REGISTRO_ANVISA ",
"REGISTRO_ANVISA ",
"PRECO_UNICO ",
"PRECO_FABRICA ",
"VALOR_INTERCAMBIO ",
"OBSERVACOES ",
"REFERENCIA_ANTERIOR ",
"REFERENCIA_TAMANHO_MODELO ",
"TIPO_DE_PRODUTO ",
"TIPO_CODIFICACAO ",
"DATA_INICIO_VIGENCIA ",
"DATA_FIM_VIGENCIA ",
"MOTIVO_DE_INSERCAO ",
"DATA_FIM_IMPLANTACAO ",
"CODIGO_SIMPRO ",
"DESCRICAO_SIMPRO ",
"a",
"b"
};
Object[][] content = new Object[elements.size()][24];
for(int i=0; i<elements.size(); i++) {
content[i][0] = elements.get(i)[0];
content[i][1] = elements.get(i)[1];
content[i][2] = elements.get(i)[2];
content[i][3] = elements.get(i)[3];
content[i][4] = elements.get(i)[4];
content[i][5] = elements.get(i)[5];
content[i][6] = elements.get(i)[6];
content[i][7] = elements.get(i)[7];
content[i][8] = elements.get(i)[8];
content[i][9] = elements.get(i)[9];
content[i][10] = elements.get(i)[10];
content[i][11] = elements.get(i)[11];
content[i][12] = elements.get(i)[12];
content[i][13] = elements.get(i)[13];
content[i][14] = elements.get(i)[14];
content[i][15] = elements.get(i)[15];
content[i][16] = elements.get(i)[16];
content[i][17] = elements.get(i)[17];
content[i][18] = elements.get(i)[18];
content[i][19] = elements.get(i)[19];
content[i][20] = elements.get(i)[20];
content[i][21] = elements.get(i)[21];
content[i][22] = elements.get(i)[22];
content[i][23] = elements.get(i)[23];
}
} catch (HeadlessException | IOException ex) {
}
segue o erro:
Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: 22
at telas.AuditoriaEnf.carregaTabelaTnummMaterial(AuditoriaEnf.java:1886)
at telas.AuditoriaEnf.carregaArquivoTnummMaterial(AuditoriaEnf.java:1547)
at telas.AuditoriaEnf.jButton15ActionPerformed(AuditoriaEnf.java:7042)
at telas.AuditoriaEnf.access$8800(AuditoriaEnf.java:69)
at telas.AuditoriaEnf$93.actionPerformed(AuditoriaEnf.java:6202)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)