potevi postare la soluzione (per non rendere il post totalmente inutile).
Riguardo al problema: leggi cosa ti dice il compilatore:
codice:
java.lang.ArrayIndexOutOfBoundsException
tenti di accedere ad una locazione non inclusa nell'array che consideri, parlando di stringhe si intende che la stringa è lunga 18 caratteri e tenti di accedere al 19 (cosa non possibile)
il problema è qui

codice:
while(linea2[j]!=';' && j<line2.length()){
                    clienteTemp+=linea2[j];
                    System.out.println(linea2[j]+" "+j);
                    j++;
                }
                if(j<linea2.length){
                    j++;
                }
in quanto ci sono incrementi selvaggi del tuo contatore, non ho capito bene il problema, ma devi riscrivere bene quel punto