2017-01-16 1 views

Répondre

1

Filereader.read lit un seul caractère. Il retourne un entier, ce qui représente la lecture de caractères.

dans votre code

(i = fr.read()) se résout d'abord, vous donnant le caractère lu. La boucle while résout ce problème à chaque fois qu'elle boucle, en se déplaçant dans le fichier.

L'extérieur compare alors cette valeur à -1.

  • Si c'est le cas, la boucle while se termine.
  • S'il ne correspond pas, il sort le caractère.
+0

mais comment se déroule la boucle puisqu'il n'y a pas de mise à jour pour la variable de compteur (dans ce cas i) dans la boucle. – pradeep

+0

i n'est pas une variable de compteur. i est la valeur renvoyée par l'appel en lecture. fr a un pointeur de fichier interne - read lui dit juste pour lire le prochain caractère. voir https://www.tutorialspoint.com/java/java_filereader_class.htm – amadan

+0

@pradeep en d'autres termes, quand il n'y a plus de caractères à lire, 'i' serait mis à -1, et la boucle se terminerait –