Quelle est la différence entre BufferedReader et InputStreamReader en Java?


Réponse 1:
  • Un InputStreamReader crée un nouvel objet de flux, qui peut être utilisé pour lire des données à partir de la source spécifiée. Il s'agit d'un pont entre les flux d'octets et les flux de caractères. Il lit les octets et les décode en caractères à l'aide d'un jeu de caractères spécifié. Le jeu de caractères qu'il utilise peut être spécifié par son nom ou le jeu de caractères par défaut de la plate-forme peut être accepté.BufferedReader est une abstraction qui lit le texte d'un flux d'entrée de caractères. Il met les caractères en mémoire tampon pour fournir une lecture efficace des caractères et des lignes. C'est une classe qui est utilisée pour lire le texte d'un flux d'entrée basé sur des caractères. Il peut être utilisé pour lire des données ligne par ligne par la méthode readLine (). Cela rend les performances rapides. Il hérite de la classe Reader.

Réponse 2:

Un InputStreamReader est un pont entre les flux d'octets et les flux de caractères: il lit les octets et les décode en caractères à l'aide d'un jeu de caractères spécifié. Le jeu de caractères qu'il utilise peut être spécifié par son nom ou donné explicitement, ou le jeu de caractères par défaut de la plateforme peut être accepté.

Chaque appel d'une des méthodes read () d'un InputStreamReader peut entraîner la lecture d'un ou plusieurs octets à partir du flux d'entrée d'octets sous-jacent. Pour permettre la conversion efficace d'octets en caractères, davantage d'octets peuvent être lus à l'avance à partir du flux sous-jacent que nécessaire pour satisfaire l'opération de lecture en cours.

Pour une efficacité optimale, pensez à encapsuler un InputStreamReader dans un BufferedReader. Par exemple:

 BufferedReader in
   = nouveau BufferedReader (nouveau InputStreamReader (System.in));
public class BufferedReader étend Reader

Lit le texte à partir d'un flux d'entrée de caractères, en mettant les caractères en mémoire tampon de manière à permettre une lecture efficace des caractères, des tableaux et des lignes.

La taille du tampon peut être spécifiée ou la taille par défaut peut être utilisée. La valeur par défaut est suffisamment grande pour la plupart des applications.

En général, chaque demande de lecture faite d'un lecteur provoque une demande de lecture correspondante du caractère ou du flux d'octets sous-jacent. Il est donc conseillé d'enrouler un BufferedReader autour de tout lecteur dont les opérations read () peuvent être coûteuses, telles que FileReaders et InputStreamReaders. Par exemple,

 BufferedReader in
   = nouveau BufferedReader (nouveau FileReader ("foo.in"));

Réponse 3:

Référence: Decodejava.com présentant un tutoriel Java simple et facile

Les opérations d'entrée / sortie de fichiers consomment beaucoup de ressources importantes et prennent du temps. Par conséquent, la lecture d'un morceau de caractères dans un fichier et son stockage dans un tampon local pour un traitement ultérieur est plus rapide et que la lecture d'un caractère à la fois, dans un fichier.

Par conséquent, la classe BufferedReader est utilisée pour créer un tel flux de lecteur tamponné à travers lequel un morceau de caractères est lu dans un fichier et transféré vers un tampon local pour une utilisation ultérieure.

Pour en savoir plus sur BufferedReader avec un exemple de code simple, vous pouvez lire Java BufferedReader Class - Decodejava.com

InputStreamReader est enroulé autour d'un flux d'entrée (qui lit en octets) pour lire des données sous forme de caractères, donc la classe InputStreamReader agit comme un convertisseur d'octets en caractères.

Pour plus d'informations sur InputStreamReader avec un exemple de code simple, vous pouvez lire Java InputStreamReader Class - Decodejava.com

J'espère que cela aide,

Bonne chance!


Réponse 4:

Référence: Decodejava.com présentant un tutoriel Java simple et facile

Les opérations d'entrée / sortie de fichiers consomment beaucoup de ressources importantes et prennent du temps. Par conséquent, la lecture d'un morceau de caractères dans un fichier et son stockage dans un tampon local pour un traitement ultérieur est plus rapide et que la lecture d'un caractère à la fois, dans un fichier.

Par conséquent, la classe BufferedReader est utilisée pour créer un tel flux de lecteur tamponné à travers lequel un morceau de caractères est lu dans un fichier et transféré vers un tampon local pour une utilisation ultérieure.

Pour en savoir plus sur BufferedReader avec un exemple de code simple, vous pouvez lire Java BufferedReader Class - Decodejava.com

InputStreamReader est enroulé autour d'un flux d'entrée (qui lit en octets) pour lire des données sous forme de caractères, donc la classe InputStreamReader agit comme un convertisseur d'octets en caractères.

Pour plus d'informations sur InputStreamReader avec un exemple de code simple, vous pouvez lire Java InputStreamReader Class - Decodejava.com

J'espère que cela aide,

Bonne chance!