Liest Text aus einem Zeicheneingabestrom und puffert Zeichen, um ein effizientes Lesen von Zeichen, Arrays und Zeilen zu ermöglichen. Die Puffergröße kann angegeben werden, oder es kann die Standardgröße verwendet werden. Der Standardwert ist für die meisten Zwecke groß genug. Im Allgemeinen führt jede von einem Reader gestellte Leseanforderung dazu, dass eine entsprechende Leseanforderung für das zugrunde liegende Zeichen oder den zugrunde liegenden Bytestrom gestellt wird. Es ist daher ratsam, einen BufferedReader um jeden Reader zu wickeln, dessen read()-Vorgänge möglicherweise kostspielig sind, wie etwa FileReaders und InputStreamReaders. Programme, die DataInputStreams für die Texteingabe verwenden, können lokalisiert werden, indem sie jeweils ersetzt werden DataInputStream mit einem entsprechenden BufferedReader .
Konstruktoren der BufferedReader-Klasse
Konstrukteur | Handlung ausgeführt |
---|---|
BufferedReader(Reader in) | Erstellt einen puffernden Zeicheneingabestream, der einen Eingabepuffer mit Standardgröße verwendet |
BufferedReader(Reader in, int sz) | Erstellt einen puffernden Zeicheneingabestream, der einen Eingabepuffer der angegebenen Größe verwendet. |
Methoden der BufferedReader-Klasse
Methodenname | Aktion |
---|---|
schließen() | Schließt den Stream und gibt alle damit verbundenen Systemressourcen frei. Sobald der Stream geschlossen wurde, lösen weitere Aufrufe von read(), ready(), mark(), reset() oder skip() eine IOException aus. Das Schließen eines zuvor geschlossenen Streams hat keine Auswirkung. |
markieren() | Markiert die aktuelle Position im Stream. Nachfolgende Aufrufe von reset() versuchen, den Stream an diesen Punkt neu zu positionieren. |
markSupported() | Gibt an, ob dieser Stream die mark()-Operation unterstützt, was auch der Fall ist. |
lesen() | Liest ein einzelnes Zeichen. |
read(char[] cbuf, int off, int len) | Liest Zeichen in einen Teil eines Arrays. Diese Methode implementiert den allgemeinen Vertrag der entsprechenden Lesemethode der Reader-Klasse. Als zusätzlichen Komfort wird versucht, so viele Zeichen wie möglich zu lesen, indem die Lesemethode des zugrunde liegenden Streams wiederholt aufgerufen wird. |
Zeile lesen() | Liest eine Textzeile. Eine Zeile gilt als beendet durch einen Zeilenvorschub („ “), einen Wagenrücklauf („ “) oder einen Wagenrücklauf, dem unmittelbar ein Zeilenvorschub folgt. |
bereit() | Gibt an, ob dieser Stream zum Lesen bereit ist. |
zurücksetzen() | Setzt den Stream auf die neueste Markierung zurück. |
überspringen (lang) | Überspringt Zeichen. |
Implementierung: Der Inhalt der Datei ist wie folgt:
This is first line this is second line>
Beispiel
Absicht Absicht
Java
symmetrischer Unterschied
// Java Program to Illustrate BufferedReader Class> // Via Its Methods> > // Importing required classes> import> java.io.BufferedReader;> import> java.io.FileReader;> import> java.io.IOException;> > // Class> class> GFG {> > > // Main driver method> > public> static> void> main(String[] args)> > throws> IOException> > {> > > // Creating object of FileReader and BufferedReader> > // class> > FileReader fr => new> FileReader(> 'file.txt'> );> > BufferedReader br => new> BufferedReader(fr);> > > char> c[] => new> char> [> 20> ];> > > // Illustrating markSupported() method> > if> (br.markSupported()) {> > > // Print statement> > System.out.println(> > 'mark() method is supported'> );> > > // Illustrating mark method> > br.mark(> 100> );> > }> > > // File Contents is as follows:> > // This is first line> > // this is second line> > > // Skipping 8 characters> > br.skip(> 8> );> > > // Illustrating ready() method> > if> (br.ready()) {> > > // Illustrating readLine() method> > System.out.println(br.readLine());> > > // Illustrating read(char c[],int off,int len)> > br.read(c);> > > for> (> int> i => 0> ; i <> 20> ; i++) {> > System.out.print(c[i]);> > }> > > System.out.println();> > > // Illustrating reset() method> > br.reset();> > for> (> int> i => 0> ; i <> 8> ; i++) {> > > // Illustrating read() method> > System.out.print((> char> )br.read());> > }> > }> > }> }> |
Linux eine Datei bearbeiten
>
>
Ausgabe:
mark() method is supported first line this is second line This is>
Was ist der Unterschied zwischen einem Megabyte und einem Gigabyte?