I den här handledningen lär vi oss om Java FileReader och dess metoder med hjälp av exempel.
Paketets FileReader
klass java.io
kan användas för att läsa data (i tecken) från filer.
Det utökar InputSreamReader
klassen.
Innan du lär dig mer FileReader
, se till att du känner till Java-filen.
Skapa en FileReader
För att skapa en filläsare måste vi först importera java.io.FileReader
paketet. När vi väl har importerat paketet, här är hur vi kan skapa filläsaren.
1. Använd filnamnet
FileReader input = new FileReader(String name);
Här har vi skapat en filläsare som kommer att länkas till den fil som anges av namnet.
2. Använda ett objekt i filen
FileReader input = new FileReader(File fileObj);
Här har vi skapat en filläsare som kommer att länkas till filen som anges av filens objekt.
I exemplet ovan lagras data i filen med någon standardteckenkodning.
Men eftersom Java 11 kan vi också specificera typen av teckenkodning ( UTF-8 eller UTF-16 ) i filen.
FileReader input = new FileReader(String file, Charset cs);
Här har vi använt Charset
klassen för att specificera teckenkodningen för filläsaren.
Metoder för FileReader
Den FileReader
klass erbjuder implementeringar för olika metoder att presentera i Reader
klassen.
läs () Metod
read()
- läser en enda karaktär från läsarenread(char() array)
- läser karaktärerna från läsaren och lagras i den angivna matrisenread(char() array, int start, int length)
- läser antalet tecken som är lika långa från läsaren och lagras i den angivna matrisen med start från positionens start
Antag till exempel 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 filen med FileReader
.
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 FileReader input = new FileReader("input.txt"); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Produktion
Data i filen: Det här är en textrad i filen.
I exemplet ovan har vi skapat en filläsare med namnet input. Filläsaren är länkad till filen input.txt .
FileInputStream input = new FileInputStream("input.txt");
För att läsa data från filen har vi använt read()
metoden.
getEncoding () Metod
Den getEncoding()
metod kan användas för att få den typ av kodning som används för att lagra data i filen. Till exempel,
import java.io.FileReader; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( try ( // Creates a FileReader with default encoding FileReader input1 = new FileReader("input.txt"); // Creates a FileReader specifying the encoding FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); // Returns the character encoding of the file reader 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(); ) ) )
Produktion
Teckenkodningen för input1: Cp1252 Teckenkodningen för input2: UTF8
I exemplet ovan har vi skapat 2 filläsare med namnet input1 och input2.
- input1 anger inte teckenkodningen. Därför
getEncoding()
returnerar metoden standardteckenkodningen. - input2 anger teckenkodningen, UTF8 . Därför
getEncoding()
returnerar metoden den angivna teckenkodningen.
Obs! Vi har använt Charset.forName()
metoden för att specificera typen av teckenkodning. För mer information, besök Java Charset (officiell Java-dokumentation).
close () Metod
För att stänga filläsaren kan vi använda close()
metoden. När close()
metoden har anropats kan vi inte använda läsaren för att läsa data.
Andra metoder för FileReader
Metod | Beskrivning |
---|---|
ready() | kontrollerar om filläsaren är redo att läsas |
mark() | markera positionen i filläsaren till vilken data har lästs |
reset() | återställer kontrollen till den punkt i läsaren där märket sattes |
För att lära dig mer, besök Java FileReader (officiell Java-dokumentation).