Pessoal,
Eu estou fazendo a leitura de um arquivo TXT e preciso capturar informações de campos específicos. segue um exemplo da linha correta do meu arquivo:
[0 = , 1 = , 2 = 170611, 3 = 080319, 4 = 170611, 5 = CTMG, 6 = , 7 = , 8 = , 9 = , 10 = SEL208I, 11 = JOB, 12 = YLBJD605, 13 = YLBG6052/13695, 14 = OID=VEQHC, 15 = ENDED, 16 = "OK"]
Porém, neste arquivo existem linhas que não são iguais e não possuem as mesmas informações nos campos conforme a linha acima: exemplo:
[0 = , 1 = , 2 = 170611, 3 = 080319, 4 = 160611, 5 = CTMG, 6 = , 7 = , 8 = , 9 = , 10 = SEL219I, 11 = JOB, 12 = NQ1JD300, 13 = OID=VEFDM, 14 = ENDED, 15 = "NOT, 16 = OK"]
O meu código para captura destas informações, está desta forma:
if(leitor.contains("ENDED")){ // CAPTURA APENAS ENDOK
if(novoArq.length < 18){ // FILTRA PARA PEGAR APENAS DADOS ANTES DA COLUNA 18
if(novoArq[11].equals("JOB") || novoArq[11].equals("CYC")){ // FILTRO PARA COLETAR APENAS JOBS OU JOBS CYCLICOS
if(novoArq[13].length() > 8 && novoArq[4].equals(odate)){ // FILTRA PARA CAPTURA DE JOBS APENAS COM 8 POSIÇÕES
StringBuilder linhaSaida1 = new StringBuilder();
linhaSaida1.append(novoArq[13].substring(0,2)).append(" "); // SISTEMA
linhaSaida1.append(novoArq[2]).append(" "); // DATA_PROCESSAMENTO
linhaSaida1.append(novoArq[3]).append(" "); // HORA
linhaSaida1.append(novoArq[4]).append(" "); // ODATE
linhaSaida1.append(novoArq[13].substring(0,8)).append(" "); // JOB
linhaSaida1.append(novoArq[13].split("/")[1]).append(" "); // JOB_ID
linhaSaida1.append(novoArq[14].substring(4,9)).append(" "); // UID
linhaSaida1.append(novoArq[15] + " " + novoArq[16]); // OCORRENCIAS
endokArquivo.add(linhaSaida1.toString()); // ADICIONA AS LINHAS NO ARRAYLIST DOS ENDOKs
Com este código está ocorrendo ArrayIndexOutOfBoundsException: 1, justamente por que na coluna 13 não tem a informação correta.
o que posso fazer para corrigir o meu código a fim de capturar apenas informações que estejam nas posições exatas conforme a linha abaixo:
[0 = , 1 = , 2 = 170611, 3 = 080319, 4 = 170611, 5 = CTMG, 6 = , 7 = , 8 = , 9 = , 10 = SEL208I, 11 = JOB, 12 = YLBJD605, 13 = YLBG6052/13695, 14 = OID=VEQHC, 15 = ENDED, 16 = "OK"]
Obrigado a todos

)