Je ne suis pas trop expérimenté avec les scanners, mais jea écrit une méthode pour lire chaque mot d’un fichier txt et pour chacun d’eux, en ajouter un à un int, mais ils ne cessent d’augmenter. Je voudrais que ça s'arrête quand il lit les derniers mots / ajoute le dernier.
public void drawnames(Graphics g) throws FileNotFoundException{
int str = 0;
String[] string = new String[800*600];
int xpos = 100;
int ypos = 100;
@SuppressWarnings("resource")
Scanner s = new Scanner(new BufferedReader(new FileReader("Particles/Names.txt")));
while(s.hasNext()){
string[str] = s.next();
g.drawString(string[str] + str, xpos, ypos);
str = str + 1;
ypos = ypos + 100;
}
}
Réponses:
1 pour la réponse № 1Immédiatement après votre boucle while, ajoutez ceci:
s.close();
1 pour la réponse № 2
s.HastNext () retournera toujours true car s ne change jamais.
Vous pourriez peut-être utiliser hasNextline () à la place.
Jetez un coup d'œil à la documentation ici: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#hasNext%28%29