Bom dia prezados, estou precisando de uma ajuda novamente…
Estou percorrendo um arquivo e fazendo algumas modificações em determinadas linhas, abaixo segue um exemplo de linha do arquivo:
|C170|24|135||2,00000|UN|77,56|0,00|0|000|5102|10001|79,33|18,00|14,28|0,00|0,00|0,00||||0,00|0,00|0,00|01|79,33|1,6500|||1,31|01|79,33|7,6000|||6,03||
Pois bem, estou utilizando o metodo Split para salvar as posições da linha em um array mas quando consulto a ultima posição que seria a 37 ele me retorna um java.lang.ArrayIndexOutOfBoundsException, muito estranho pois se eu consultar a posição 36 ou anteriores funciona normalmente. Segue a baixo um pedaço do código.
public void modificaContas() {
try {
Arquivo novoArquivo = new Arquivo("C:\\Users\\justi\\Desktop\\EFD Canal\\EfdJS.txt");
novoArquivo.CriaArquivo();
InputStream is = new FileInputStream(this.arquivo);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String efd = br.readLine(); // Primeira linha do arquivo do EFD;
while (efd != null) {
String[] linha = efd.split("[|]");
if ( linha[1].equals("C170")) {
if(linha[11].equals("1102")|| linha[11].equals("2102")|| linha[11].equals("1403")|| linha[11].equals("2403")){
System.out.println(linha[37]);
}
}
efd = br.readLine();
}
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}