Comment fonctionne la classe JAVA Scanner en interne?


En JAVA lorsque vous importez la classe Scanner et créez un objet Scanner, comment fonctionne la logique sous-jacente pour capturer l'entrée et l'écrire sur la mémoire? Je comprends que la déclaration suivante

Scanner sc = new Scanner (System.in) 

Signifie que vous créez un nouvel objet de classe Scanner appelé sc qui héritera des attributs et des méthodes de la classe Scanner à utiliser d'une certaine manière. Mais je voudrais savoir ce que fait l'argument System.in?

Lorsque le compilateur passe par l'étape d'instanciation de classe, il créerait d'abord un constructeur de classe qui prend en System.in comme argument qui est un objet de la classe InputStream. Ce qui signifie que lorsque vous appelez une méthode nextInt() ou nextln() de la classe Scanner, ce que vous faites essentiellement est d'envoyer cette entrée dans cette méthode qui effectuerait une vérification syntaxique dessus, puis la transmettrait à la classe InputStream qui la transformerait en octets qui peuvent ensuite être écrits sur la mémoire.

Est-ce ainsi que cela fonctionne? ou suis Je suis totalement sur les rails avec cela?

Author: Erwin Bolwidt, 2016-12-17

1 answers

La classe Scanner peut être utilisée pour lire les entrées de différentes sources. L'objet Scanner contient l'adresse de l'objet InputStream présent dans la classe Système. L'objet de flux d'entrée de la classe système lit les données du clavier qui est un flux d'octets / une forme d'octets. La classe Scanner convertit cet octet lu en un type de données spécifique. La classe Scanner a été introduite dans Java5.0, jusqu'alors BufferedReader était le mode préféré de lecture des données qui lisent les données sous forme de chaîne. Par exemple:

Scanner scan=new Scanner(System.in);

Dans cette ligne, scan est un objet de la classe Scanner, cet objet contient l'adresse de l'objet Flux d'entrée. Lorsqu'un octet de données est lu à partir du clavier, l'objet Input Stream, qui contient l'adresse du clavier(chaque périphérique est établi comme un fichier spécial octet/bloc ou un fichier spécial caractère dans le système d'exploitation, par conséquent l'adresse d'un périphérique est essentiellement l'adresse de départ du fichier spécial bloc/caractère en mémoire) type de données spécifique.

 0
Author: KumarAnkit, 2017-09-10 08:12:45