Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java InputStreamReader: Methoden, encoding en praktische voorbeelden

Java InputStreamReader uitgelegd

Ontdek hoe Java's InputStreamReader byte-streams brugt naar karakter-streams, de kernmethoden en hoe je encoding correct afhandelt.

Inleiding

De InputStreamReader-klasse in java.io converteert rauwe bytes naar karakters, wat essentieel is voor het lezen van tekstbestanden, netwerkstreams of elke byte-gebaseerde bron die karakters vertegenwoordigt.

Het breidt de abstracte Reader-klasse uit en fungeert als brug tussen byte-streams (bijv. FileInputStream) en karakter-streams.

Wanneer een karakter meerdere bytes vereist – zoals UTF-8 of UTF-16 gecodeerde tekst – leest InputStreamReader die bytes samen en produceert het correcte karakter.

Een InputStreamReader aanmaken

Begin met het importeren van de benodigde klasse:

import java.io.InputStreamReader;

Typische instantiatie gebruikt een FileInputStream als onderliggende byte-bron:

FileInputStream bestand = new FileInputStream("voorbeeld.txt");
InputStreamReader reader = new InputStreamReader(bestand);

Als je de encoding van het bestand kent, specificeer deze om misinterpretatie te voorkomen:

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

Het gebruik van Charset garandeert dat de reader bytes interpreteert met de beoogde karakterset.

Kernmethoden van InputStreamReader

read()

  • int read() – Leest een enkel karakter
  • int read(char[] cbuf) – Vult een array met karakters
  • int read(char[] cbuf, int off, int len) – Leest maximaal len karakters in cbuf beginnend bij off

Voorbeeld: Een tekstbestand inlezen in een karakterarray.

import java.io.*;

class Main {
    public static void main(String[] args) {
        char[] buffer = new char[100];
        try (FileInputStream bestand = new FileInputStream("input.txt");
             InputStreamReader reader = new InputStreamReader(bestand)) {
            reader.read(buffer);
            System.out.println("Data in de stream:\n" + new String(buffer));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Output

Data in de stream: Dit is een regel tekst in het bestand.

getEncoding()

Haalt de encoding op die door de reader gebruikt wordt:

InputStreamReader standaardReader = new InputStreamReader(bestand);
InputStreamReader utf8Reader = new InputStreamReader(bestand, Charset.forName("UTF-8"));
System.out.println("Standaard encoding: " + standaardReader.getEncoding());
System.out.println("UTF-8 encoding: " + utf8Reader.getEncoding());

Output

Standaard encoding: Cp1252
UTF-8 encoding: UTF-8

Wanneer geen encoding gespecificeerd is, retourneert getEncoding() het platformstandaard-charset.

Let op: Gebruik Charset.forName() voor expliciete encodings. Zie de Java Charset-documentatie voor meer details.

close()

Sluit de reader altijd na gebruik. Het try-with-resources-construct hierboven doet dit automatisch, maar je kunt ook expliciet reader.close() aanroepen.

Overige nuttige methoden

MethodeBeschrijving
ready()Controleert of de stream klaar is voor lezen
mark(int readAheadLimit)Markeert de huidige positie voor later resetten
reset()Keert terug naar de laatste gemarkeerde positie

Voor een complete referentie, bezoek de officiële InputStreamReader-pagina.

Java

  1. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  2. Java instanceof operator: een uitgebreide gids
  3. Java-erfenis meesteren: concepten, typen en praktische voorbeelden
  4. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  5. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  6. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  7. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  8. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
  9. Java Scanner: Uitgebreide gids met praktische voorbeelden
  10. Java Generics: Herbruikbare, type-veilige code bouwen
  11. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen