Java FileReader (med exempel)

I den här handledningen lär vi oss om Java FileReader och dess metoder med hjälp av exempel.

Paketets FileReaderklass java.iokan användas för att läsa data (i tecken) från filer.

Det utökar InputSreamReaderklassen.

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.FileReaderpaketet. 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 Charsetklassen för att specificera teckenkodningen för filläsaren.

Metoder för FileReader

Den FileReaderklass erbjuder implementeringar för olika metoder att presentera i Readerklassen.

läs () Metod

  • read() - läser en enda karaktär från läsaren
  • read(char() array) - läser karaktärerna från läsaren och lagras i den angivna matrisen
  • read(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).

Intressanta artiklar...