André,
Identifiquei que:
1) O seu loop é realizado uma vez com sucesso ou parcialmente (não sei se realiza o linhasSeparadas.close()) pois a primeira linha do seu arquivo é impresso .
"CC,22,33,..."
2) Sugiro colocar um uma saída de texto na tela após linhasSperadas.close() para garantir que ele executa o primeiro loop completo com êxito;
3) Verificar se o seu arquivo "contas.csv" está corretamente formatado.
Já tem um tempo que não vejo Java, mas espero ter ajudado.
Bons estudos.
não é linhaSperadas.close() não, pd ser q seja o arquivo, por conta q qdo clico nele, ele abre no excel, não sei se tem algo a ver, mas o erro, ele da a partir da linha 22, até q se eu comento ela, vai para a próxima linha o erro. Não sei o pq do erro. :(
Olá Andre! Tudo bem? Acabei de finalizar esse curso sobre o pacote java.io e dando uma olhada rápida no seu código percebi que na linha 19 você informou o delimitador com um espaço depois da vírgula, dessa forma, o scanner não realizou a quebra da string em um array com 5 índices por que a delimitação informada não era válida e assim, esse erro que geralmente ocorre quando tentamos acessar um índice não existente de um array foi impresso no console.
Segue logo abaixo o código corrigido.
Abraço e bons estudos!
public class ScannerTest {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(new File("contas.csv"));
while (sc.hasNextLine()) {
String line = sc.nextLine();
Scanner scannerLine = new Scanner(line);
scannerLine.useLocale(Locale.US);
scannerLine.useDelimiter(",");
System.out.format(new Locale("pt"), "%s - %05d and %05d -> %20s: %08.2f %n", scannerLine.next(),
scannerLine.nextInt(), scannerLine.nextInt(), scannerLine.next(), scannerLine.nextDouble());
scannerLine.close();
}
}
}