I den här handledningen lär vi oss om Java Reader, dess underklasser och dess metoder med hjälp av ett exempel.
Paketets Reader
klass java.io
är en abstrakt superklass som representerar en ström av karaktärer.
Eftersom det Reader
är en abstrakt klass är det inte användbart i sig. Emellertid kan dess underklasser användas för att läsa data.
Underklasser av läsaren
För att använda funktionaliteten hos Reader
kan vi använda dess underklasser. Några av dem är:
- BufferedReader
- InputStreamReader
- FileReader
- StringReader
Vi lär oss om alla dessa underklasser i nästa handledning.
Skapa en läsare
För att skapa ett Reader
måste vi först importera java.io.Reader
paketet. När vi väl har importerat paketet, här är hur vi kan skapa läsaren.
// Creates a Reader Reader input = new FileReader();
Här har vi skapat en läsare som använder FileReader
klassen. Det är för att det Reader
är en abstrakt klass. Därför kan vi inte skapa ett objekt av Reader
.
Obs! Vi kan också skapa läsare från andra underklasser av Reader
.
Metoder för läsare
Den Reader
klass tillhandahåller olika metoder som implementeras av dess underklasser. Här är några av de vanliga metoderna:
ready()
- kontrollerar om läsaren är redo att läsasread(char() array)
- läser karaktärerna från strömmen och lagras i den angivna matrisenread(char() array, int start, int length)
- läser antalet tecken som är lika långa från strömmen och lagras i den angivna matrisen från börjanmark()
- markerar positionen i strömmen till vilken data har lästsreset()
- återställer kontrollen till den punkt i strömmen där märket sättsskip()
- kasserar det angivna antalet tecken från strömmen
Exempel: Läsare med FileReader
Här är hur vi kan implementera Reader
med FileReader
klassen.
Antag att vi har en fil med namnet input.txt med följande innehåll.
This is a line of text inside the file.
Låt oss försöka läsa den här filen med FileReader
(en underklass av Reader
).
import java.io.Reader; import java.io.FileReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a reader using the FileReader Reader input = new FileReader("input.txt"); // Checks if reader is ready System.out.println("Is there data in the stream? " + input.ready()); // Reads characters input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Produktion
Finns det data i strömmen? true Data in the stream: Detta är en textrad i filen.
I exemplet ovan har vi skapat en läsare som använder FileReader
klassen. Läsaren är länkad till filen input.txt .
Reader input = new FileReader("input.txt");
För att läsa data från filen input.txt har vi implementerat dessa metoder.
input.read(); // to read data from the reader input.close(); // to close the reader
För att lära dig mer, besök Java Reader (officiell Java-dokumentation).