Eai galera. To com um problemão aqui, to brigando com um Scanner do java há semanas e não consigo resolver meu problema… Bateu o desespero e vim aqui 
Esse é o código:
public static void atribuicao (double[][] f, String[] g) { for (int x = 0; x < g.length; x++) { Scanner sc = new Scanner(System.in).useLocale(<a href="http://Locale.US">Locale.US</a>); g[x] = sc.nextLine(); for (int y = 0; y < 14; y++) { f[x][y] = sc.nextDouble(); // Insere os pesos de cada criterio para avaliação } } }
Senta que lá vem história… Meu programa todo mesmo tem 94 linhas. Ele funciona perfeitamente, eu compilo e executo, insiro as entradas manualmente e sucesso. Porém quando eu uso como entrada um arquivo txt, pelo comando java Main <entrada.txt ele da o erro:
Exception in thread “main” java.util.NoSuchElementException: No line found
-
at java.util.Scanner.nextLine(Unknown Source)*
-
at EpTeste.atribuicao(EpTeste.java:66)*
-
at EpTeste.main(EpTeste.java:17)* // Aqui é a linha onde eu invoquei o método
Se eu utilizo um if () {} ele simplesmente me retorna false e nem executa a linha 66 e acontece um erro diferente, dessa vez na linha 69, problema na leitura do double:sc.hasNextLine()
Exception in thread “main” java.util.NoSuchElementException
-
at java.util.Scanner.throwFor(Unknown Source)*
-
at java.util.Scanner.next(Unknown Source)*
-
at java.util.Scanner.nextDouble(Unknown Source)*
-
at EpTeste.atribuicao(EpTeste.java:69)*
-
at EpTeste.main(EpTeste.java:17)*
Já tentei bastante coisa pra resolver esse segundo problema, como por exemplo ler o double como String, mas mesmo assim da problema. Vou ficar mt feliz se alguém me ajudar =)
Obrigado!