Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java InputStreamReader erklärt: Methoden, Encoding und praktische Beispiele

Java InputStreamReader erklärt

Entdecken Sie, wie Javas InputStreamReader Byte-Streams zu Character-Streams überbrückt, seine Kernmethoden und wie man Encoding korrekt handhabt.

Die InputStreamReader Klasse in java.io konvertiert rohe Bytes in Characters, was sie essenziell für das Lesen von Textdateien, Netzwerk-Streams oder jeder byte-basierten Quelle macht, die Characters repräsentiert.

Sie erweitert die abstrakte Reader Klasse und fungiert als Brücke zwischen Byte-Streams (z. B. FileInputStream) und Character-Streams.

Java InputStreamReader erklärt: Methoden, Encoding und praktische Beispiele

Wenn ein Character mehrere Bytes erfordert – wie bei UTF-8 oder UTF-16 kodiertem Text – liest InputStreamReader diese Bytes zusammen und produziert den korrekten Character.

InputStreamReader erstellen

Beginnen Sie mit dem Import der notwendigen Klasse:

import java.io.InputStreamReader;

Typische Instanziierung verwendet einen FileInputStream als zugrundeliegende Byte-Quelle:

FileInputStream file = new FileInputStream("beispiel.txt");
InputStreamReader reader = new InputStreamReader(file);

Wenn Sie die Kodierung der Datei kennen, geben Sie sie an, um Fehlinterpretationen zu vermeiden:

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

Die Verwendung von Charset garantiert, dass der Reader Bytes mit dem beabsichtigten Character Set interpretiert.

Kernmethoden von InputStreamReader

read()

Beispiel: Textdatei in ein Character-Array lesen.

import java.io.*;

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

Ausgabe

Daten im Stream: This is a line of text inside the file.

getEncoding()

Rufen Sie die vom Reader verwendete Kodierung ab:

InputStreamReader defaultReader = new InputStreamReader(file);
InputStreamReader utf8Reader = new InputStreamReader(file, Charset.forName("UTF-8"));
System.out.println("Standard Encoding: " + defaultReader.getEncoding());
System.out.println("UTF-8 Encoding: " + utf8Reader.getEncoding());

Ausgabe

Standard Encoding: Cp1252
UTF-8 Encoding: UTF-8

Wenn keine Kodierung angegeben wird, gibt getEncoding() das plattformspezifische Default-Charset zurück.

Hinweis: Verwenden Sie Charset.forName() für explizite Encodings. Für mehr Details siehe Java Charset Dokumentation.

close()

Schließen Sie den Reader nach Gebrauch immer. Der try-with-resources Konstruktor oben handhabt dies automatisch, aber Sie können auch explizit reader.close() aufrufen.

Weitere nützliche Methoden

MethodeBeschreibung
ready()Prüft, ob der Stream zum Lesen bereit ist.
mark(int readAheadLimit)Markiert die aktuelle Position für späteren Reset.
reset()Kehrt zur letzten markierten Position zurück.

Für eine umfassende Referenz besuchen Sie die offizielle InputStreamReader Seite.

Java

  1. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  2. Java instanceof-Operator: Ein umfassender Leitfaden
  3. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  4. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  5. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  6. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  7. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  8. Java Scanner meistern: Umfassender Leitfaden mit praktischen Beispielen
  9. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  10. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen