Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Java InputStreamReader expliqué : Méthodes, encodage et exemples pratiques

Java InputStreamReader expliqué : Méthodes, encodage et exemples pratiques

La classe InputStreamReader dans java.io convertit des octets bruts en caractères, la rendant essentielle pour lire des fichiers texte, flux réseau ou toute source d'octets représentant des caractères.

Elle étend la classe abstraite Reader et fait le pont entre flux d'octets (ex: FileInputStream) et flux de caractères.

Lorsqu'un caractère nécessite plusieurs octets — comme du texte encodé UTF-8 ou UTF-16 — InputStreamReader lit ces octets ensemble et produit le caractère correct.


Création d'un InputStreamReader

Importez la classe nécessaire :

import java.io.InputStreamReader;

L'instanciation typique utilise un FileInputStream comme source d'octets sous-jacente :

FileInputStream fichier = new FileInputStream("exemple.txt");
InputStreamReader reader = new InputStreamReader(fichier);

Si vous connaissez l'encodage du fichier, spécifiez-le pour éviter les interprétations erronées :

InputStreamReader reader = new InputStreamReader(fichier, Charset.forName("UTF-8"));

L'utilisation de Charset garantit que le lecteur interprète les octets avec le jeu de caractères prévu.


Méthodes principales d'InputStreamReader

read()

Exemple : Lecture d'un fichier texte dans un tableau de caractères.

import java.io.*;

class Main {
    public static void main(String[] args) {
        char[] tampon = new char[100];
        try (FileInputStream fichier = new FileInputStream("input.txt");
             InputStreamReader reader = new InputStreamReader(fichier)) {
            reader.read(tampon);
            System.out.println("Données dans le flux :\n" + new String(tampon));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Sortie

Données dans le flux :
Ceci est une ligne de texte dans le fichier.

getEncoding()

Récupère l'encodage utilisé par le lecteur :

InputStreamReader lecteurDefaut = new InputStreamReader(fichier);
InputStreamReader lecteurUtf8 = new InputStreamReader(fichier, Charset.forName("UTF-8"));
System.out.println("Encodage par défaut : " + lecteurDefaut.getEncoding());
System.out.println("Encodage UTF-8 : " + lecteurUtf8.getEncoding());

Sortie

Encodage par défaut : Cp1252
Encodage UTF-8 : UTF-8

Sans encodage spécifié, getEncoding() renvoie le jeu de caractères par défaut de la plateforme.

Note : Utilisez Charset.forName() pour des encodages explicites. Voir la documentation Java Charset.


close()

Fermez toujours le lecteur après utilisation. Le construct try-with-resources ci-dessus le gère automatiquement, mais vous pouvez aussi appeler reader.close() explicitement.


Autres méthodes utiles

MéthodeDescription
ready()Vérifie si le flux est prêt pour la lecture
mark(int readAheadLimit)Marque la position courante pour réinitialisation ultérieure
reset()Revient à la dernière position marquée

Pour une référence complète, visitez la page officielle InputStreamReader.

Java

  1. Comprendre le mot-clé final en Java : variables, méthodes et classes
  2. L'opérateur instanceof en Java : guide complet
  3. Comprendre les classes imbriquées statiques en Java : utilisation, différences et exemples
  4. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  5. Le pattern Singleton en Java expliqué : implémentation et utilisation sûre
  6. Maîtriser la réflexion Java : inspection des classes, méthodes et champs à l'exécution
  7. Maîtriser Java ObjectOutputStream : Sérialisation, méthodes et exemples pratiques
  8. Maîtriser Java Scanner : Guide complet avec exemples pratiques
  9. Maîtriser les génériques Java : Construire du code réutilisable et type-safe