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

Java InputStreamReader-Klasse

Java InputStreamReader-Klasse

In diesem Tutorial lernen wir Java InputStreamReader und seine Methoden anhand von Beispielen kennen.

Der InputStreamReader Klasse der java.io Paket kann verwendet werden, um Daten in Bytes in Daten in Zeichen umzuwandeln.

Es erweitert die abstrakte Klasse Reader .

Die InputStreamReader Klasse funktioniert mit anderen Eingabeströmen. Es ist auch als Brücke zwischen Byteströmen und Zeichenströmen bekannt. Das liegt daran, dass InputStreamReader liest Bytes aus dem Eingabestrom als Zeichen.

Beispielsweise erforderten einige Zeichen 2 Bytes, um im Speicher gespeichert zu werden. Um solche Daten zu lesen, können wir den Input Stream Reader verwenden, der die 2 Bytes zusammen liest und in das entsprechende Zeichen umwandelt.


Einen InputStreamReader erstellen

Um einen InputStreamReader zu erstellen , müssen wir den java.io.InputStreamReader importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir hier den Input-Stream-Reader erstellen.

// Creates an InputStream
FileInputStream file = new FileInputStream(String path);

// Creates an InputStreamReader
InputStreamReader input = new InputStreamReader(file);

Im obigen Beispiel haben wir einen InputStreamReader erstellt mit dem Namen Eingabe zusammen mit dem FileInputStream namens Datei .

Hier werden die Daten in der Datei unter Verwendung einer Standardzeichencodierung gespeichert.

Wir können jedoch die Art der Zeichenkodierung (UTF8 oder UTF16 ) auch in der Datei.

// Creates an InputStreamReader specifying the character encoding
InputStreamReader input = new InputStreamReader(file, Charset cs);

Hier haben wir den Charset verwendet Klasse, um die Zeichencodierung in der Datei anzugeben.


Methoden von InputStreamReader

Die InputStreamReader -Klasse stellt Implementierungen für verschiedene Methoden bereit, die in Reader vorhanden sind Klasse.

read()-Methode

Angenommen, wir haben eine Datei mit dem Namen input.txt mit folgendem Inhalt.

This is a line of text inside the file.

Versuchen wir, diese Datei mit InputStreamReader zu lesen .

import java.io.InputStreamReader;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    // Creates an array of character
    char[] array = new char[100];

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader
      InputStreamReader input = new InputStreamReader(file);

      // Reads characters from the file
      input.read(array);
      System.out.println("Data in the stream:");
      System.out.println(array);

      // Closes the reader
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Ausgabe

Data in the stream:
This is a line of text inside the file.

Im obigen Beispiel haben wir einen Input-Stream-Reader mit dem Datei-Input-Stream erstellt. Der Input Stream Reader ist mit der Datei input.txt verknüpft .

 FileInputStream file = new FileInputStream("input.txt");
 InputStreamReader input = new InputStreamReader(file);

Um Zeichen aus der Datei zu lesen, haben wir den read() verwendet Methode.


getEncoding()-Methode

Die getEncoding() -Methode kann verwendet werden, um den Codierungstyp abzurufen, der zum Speichern von Daten im Eingabestream verwendet wird. Zum Beispiel

import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.io.FileInputStream;

class Main {
  public static void main(String[] args) {

    try {
      // Creates a FileInputStream
      FileInputStream file = new FileInputStream("input.txt");

      // Creates an InputStreamReader with default encoding
      InputStreamReader input1 = new InputStreamReader(file);

      // Creates an InputStreamReader specifying the encoding
      InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8"));

      // Returns the character encoding of the input stream
      System.out.println("Character encoding of input1: " + input1.getEncoding());
      System.out.println("Character encoding of input2: " + input2.getEncoding());

      // Closes the reader
      input1.close();
      input2.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

Ausgabe

The character encoding of input1: Cp1252
The character encoding of input2: UTF8

Im obigen Beispiel haben wir 2 Input-Stream-Reader mit dem Namen input1 erstellt und eingang2 .

Hinweis :Wir haben den Charset.forName() verwendet Methode, um die Art der Zeichencodierung anzugeben. Um mehr zu erfahren, besuchen Sie Java Charset (offizielle Java-Dokumentation).


close()-Methode

Um den Eingabestromleser zu schließen, können wir den close() verwenden Methode. Einmal die close() -Methode aufgerufen wird, können wir den Reader nicht zum Lesen der Daten verwenden.


Andere Methoden von InputStreamReader

Methode Beschreibung
ready() überprüft, ob der Stream zum Lesen bereit ist
mark() Markieren Sie die Position im Stream, bis zu der Daten gelesen wurden
reset() gibt die Steuerung an den Punkt im Stream zurück, an dem die Markierung gesetzt wurde

Um mehr zu erfahren, besuchen Sie Java InputStreamReader (offizielle Java-Dokumentation).


Java

  1. Letztes Java-Schlüsselwort
  2. Java-Instanz des Operators
  3. Verschachtelte statische Java-Klasse
  4. Anonyme Java-Klasse
  5. Java-Singleton-Klasse
  6. Java-Reflexion
  7. Java ObjectOutputStream-Klasse
  8. Java-Scanner-Klasse
  9. Java-Generika
  10. Java-Dateiklasse