Oi.
Já tenho estado horas, há volta do meu programa mas nao sei como resolver isto:
eu quero ler de um ficheiro Chat.txt.
FileReader reader = new FileReader(“Chat.txt”);
Scanner read = new Scanner(reader);
int numContactos = read.nextInt();
int maxActivo = read.nextInt();
int maxContactosReset = read.nextInt();
…(tem mais coisas, mas o erro esta aqui)
da-me um erro em int numContactos = read.nextInt();
que diz:
xception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Main.readFromFile(Main.java:746)
at Main.main(Main.java:20)
alguem me pode ajudar.
Nao posso fazer com bufferReader, nem nada do genero, porque nao me é permitido pela professora.
Apenas com o FileReader
[quote=warning]Oi.
Já tenho estado horas, há volta do meu programa mas nao sei como resolver isto:
eu quero ler de um ficheiro Chat.txt.
FileReader reader = new FileReader(“Chat.txt”);
Scanner read = new Scanner(reader);
int numContactos = read.nextInt();
int maxActivo = read.nextInt();
int maxContactosReset = read.nextInt();
…(tem mais coisas, mas o erro esta aqui)
da-me um erro em int numContactos = read.nextInt();
que diz:
xception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Main.readFromFile(Main.java:746)
at Main.main(Main.java:20)
alguem me pode ajudar.
Nao posso fazer com bufferReader, nem nada do genero, porque nao me é permitido pela professora.
Apenas com o FileReader[/quote]
o problema acontece quando você lê “nomeCompleto”. É que você está lendo apenas o primeiro nome, pois é um nome composto, separado por espaço. Ai, o que acontece, como faltou a leitura do segundo nome “ferraz”, suas sucessivas leituras passam a obter valores incorretos, até chegar na idade, que está tentando obter um inteiro, e na verdade está recebendo “m”.
Experimente debugar e ler o javadoc da classe Scanner, ai vai um trecho?