Java InputStreamReader (mit Beispielen)

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

Die InputStreamReaderKlasse des java.ioPakets kann verwendet werden, um Daten in Bytes in Daten in Zeichen umzuwandeln.

Es erweitert die abstrakte Klasse Reader.

Die InputStreamReaderKlasse arbeitet mit anderen Eingabestreams. Es ist auch als Brücke zwischen Byte-Streams und Zeichen-Streams bekannt. Dies liegt daran, dass die InputStreamReaderBytes aus dem Eingabestream als Zeichen gelesen werden.

Für einige Zeichen mussten beispielsweise 2 Bytes im Speicher gespeichert werden. Um solche Daten zu lesen, können wir den Eingabestream-Reader verwenden, der die 2 Bytes zusammen liest und in das entsprechende Zeichen konvertiert.

Erstellen Sie einen InputStreamReader

Um ein zu erstellen InputStreamReader, müssen wir java.io.InputStreamReaderzuerst das Paket importieren . Sobald wir das Paket hier importiert haben, können wir den Eingabestream-Reader erstellen.

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

Im obigen Beispiel haben wir eine InputStreamReaderbenannte Eingabe zusammen mit der FileInputStreambenannten Datei erstellt.

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

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

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

Hier haben wir die CharsetKlasse verwendet, um die Zeichenkodierung in der Datei anzugeben.

Methoden von InputStreamReader

Die InputStreamReaderKlasse bietet Implementierungen für verschiedene in der ReaderKlasse vorhandene Methoden .

read () Methode

  • read() - liest ein einzelnes Zeichen vom Leser
  • read(char() array) - liest die Zeichen aus dem Reader und speichert sie im angegebenen Array
  • read(char() array, int start, int length) - liest die Anzahl der Zeichen, die der Länge entsprechen, vom Lesegerät und speichert sie von Anfang an im angegebenen Array

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

 This is a line of text inside the file. 

Versuchen wir, diese Datei mit zu lesen InputStreamReader.

 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

 Daten im Stream: Dies ist eine Textzeile in der Datei. 

Im obigen Beispiel haben wir einen Eingabestream-Reader mit dem Dateieingabestream erstellt. Der Eingabestream-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 die read()Methode verwendet.

getEncoding () -Methode

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

 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

 Die Zeichenkodierung von Eingabe1: Cp1252 Die Zeichenkodierung von Eingabe2: UTF8 

Im obigen Beispiel haben wir zwei Eingabestream-Reader mit den Namen input1 und input2 erstellt.

  • input1 gibt die Zeichenkodierung nicht an. Daher gibt die getEncoding()Methode den kanonischen Namen der Standardzeichenkodierung zurück.
  • input2 gibt die Zeichenkodierung UTF8 an . Daher gibt die getEncoding()Methode die angegebene Zeichenkodierung zurück.

Hinweis : Wir haben die Charset.forName()Methode verwendet, um den Typ der Zeichenkodierung anzugeben. Weitere Informationen finden Sie unter Java Charset (offizielle Java-Dokumentation).

close () Methode

Um den Eingabestream-Reader zu schließen, können wir die close()Methode verwenden. Sobald die close()Methode aufgerufen wurde, können wir den Leser nicht mehr zum Lesen der Daten verwenden.

Andere Methoden von InputStreamReader

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

Weitere Informationen finden Sie unter Java InputStreamReader (offizielle Java-Dokumentation).

Interessante Beiträge...