Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java FileReader-klasse

Java FileReader-klasse

In deze zelfstudie leren we over Java FileReader en zijn methoden aan de hand van voorbeelden.

De FileReader klasse van de java.io pakket kan worden gebruikt om gegevens (in tekens) uit bestanden te lezen.

Het verlengt de InputSreamReader klasse.

Voordat u meer te weten komt over FileReader , zorg ervoor dat u op de hoogte bent van het Java-bestand.


Maak een FileReader

Om een ​​bestandslezer te maken, moeten we de java.io.FileReader . importeren pakket eerst. Nadat we het pakket hebben geïmporteerd, kunnen we als volgt de bestandslezer maken.

1. De naam van het bestand gebruiken

FileReader input = new FileReader(String name);

Hier hebben we een bestandslezer gemaakt die wordt gekoppeld aan het bestand dat is opgegeven met de naam .

2. Een object van het bestand gebruiken

FileReader input = new FileReader(File fileObj);

Hier hebben we een bestandslezer gemaakt die wordt gekoppeld aan het bestand dat is opgegeven door het object van het bestand.

In het bovenstaande voorbeeld worden de gegevens in het bestand opgeslagen met een standaard tekencodering.

Sinds Java 11 kunnen we echter het type tekencodering specificeren (UTF-8 of UTF-16 ) ook in het bestand.

FileReader input = new FileReader(String file, Charset cs);

Hier hebben we de Charset . gebruikt class om de tekencodering van de bestandslezer te specificeren.


Methoden van FileReader

De FileReader class biedt implementaties voor verschillende methoden die aanwezig zijn in de Reader klasse.

read()-methode

  • read() - leest een enkel karakter van de lezer
  • read(char[] array) - leest de tekens uit de lezer en slaat ze op in de opgegeven array
  • read(char[] array, int start, int length) - leest het aantal tekens gelijk aan lengte van de lezer en slaat op in de opgegeven array vanaf de positie start

Stel dat we bijvoorbeeld een bestand hebben met de naam input.txt met de volgende inhoud.

This is a line of text inside the file.

Laten we proberen het bestand te lezen met 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();
    }
  }
}

Uitvoer

Data in the file:
This is a line of text inside the file.

In het bovenstaande voorbeeld hebben we een bestandslezer gemaakt met de naam input . De bestandslezer is gekoppeld aan het bestand input.txt .

FileInputStream input = new FileInputStream("input.txt");

Om gegevens uit het bestand te lezen, hebben we de read() . gebruikt methode.

Opmerking :Het bestand input.txt moet aanwezig zijn in de huidige werkmap.


getEncoding()-methode

De getEncoding() methode kan worden gebruikt om het type codering te krijgen dat wordt gebruikt om gegevens in het bestand op te slaan. Bijvoorbeeld,

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();
    }
  }
}

Uitvoer

The character encoding of input1: Cp1252
The character encoding of input2: UTF8

In het bovenstaande voorbeeld hebben we 2 bestandslezers gemaakt met de naam input1 en invoer2 .

  • invoer1 specificeert niet de tekencodering. Vandaar de getEncoding() methode retourneert de standaard tekencodering.
  • invoer2 specificeert de tekencodering, UTF8 . Vandaar de getEncoding() methode retourneert de opgegeven tekencodering.

Opmerking :We hebben de Charset.forName() . gebruikt methode om het type tekencodering op te geven. Ga voor meer informatie naar Java Charset (officiële Java-documentatie).


close()-methode

Om de bestandslezer te sluiten, kunnen we de close() . gebruiken methode. Zodra de close() methode wordt aangeroepen, kunnen we de lezer niet gebruiken om de gegevens te lezen.


Andere methoden van FileReader

Methode Beschrijving
ready() controleert of de bestandslezer klaar is om gelezen te worden
mark() markeer de positie in de bestandslezer tot waar de gegevens zijn gelezen
reset() geeft de besturing terug naar het punt in de lezer waar de markering werd geplaatst

Ga voor meer informatie naar Java FileReader (officiële Java-documentatie).


Java

  1. Java laatste trefwoord
  2. Java-instantie van Operator
  3. Java-erfenis
  4. Java geneste statische klasse
  5. Java anonieme klasse
  6. Java Singleton-klasse
  7. Java-reflectie
  8. Java ObjectOutputStream-klasse
  9. Java BufferedReader-klasse
  10. Java-generieken
  11. Java-bestandsklasse