Java >> Tutoriel Java >  >> Java

Java lit le fichier ligne par ligne | Fichier texte | Scanner | Exemples

Parfois, nous devons Java lire le fichier ligne par ligne . Par exemple, le fichier texte contient des données de numéro de matricule et de nom d'étudiant ligne par ligne. Alors, comment allez-vous procéder ? Il existe de nombreuses façons de le faire en java. Dans ce didacticiel, vous découvrirez la lecture de fichiers ligne par ligne en Java à l'aide de la classe scanner et d'autres méthodes avec des exemples.

Si vous cherchez uniquement à lire un fichier, suivez ce lien de tutoriel - Java Read File Text

Méthodes pour que Java lise le fichier ligne par ligne

  • BufferedReader
  • Classe de scanner
  • Utiliser des fichiers
  • RandomAccessFile

Commençons par l'exemple

Nous allons voir Java lire le fichier texte ligne par ligne exemple une par une méthode différente.

Le premier exemple, vous pouvez regarder une capture d'écran de la structure du projet. Et la sortie sera la même pour tous les exemples car en utilisant le même fichier.

Lire la ligne à l'aide de BufferedReader

Dans BufferedReader, utilisez readLine() méthode pour lire le fichier ligne par ligne jusqu'à String. readLine() La méthode renvoie null à la fin du fichier. Voir l'exemple simple ci-dessous montrant comment lire un fichier ligne par ligne avec BufferedReader.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FileReading {

    public static void main(String[] args) {

        try {
            BufferedReader reader = new BufferedReader(new FileReader(
                    "samplefile.txt"));
            String line = reader.readLine();

            while (line != null) {
                System.out.println(line);
                // read next line
                line = reader.readLine();
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Sortie : Première ligne
Deuxième ligne

Scanner

Voici comment java lit le fichier ligne par ligne exemple du scanner. Ouvrez le fichier et imprimez le contenu ligne par ligne.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileReading {

    public static void main(String[] args) {

        try {
            Scanner scanner = new Scanner(new File("samplefile.txt"));
            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }
            scanner.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Utilisation de la classe Files

La classe Files est une classe utilitaire qui contient diverses méthodes utiles. Une méthode readAllLines utilisée pour lire toutes les lignes du fichier dans une liste de chaînes.

Dans un exemple, il s'agit d'une liste de retour, vous devez donc exécuter une boucle for pour obtenir le texte ligne par ligne. Voir ci-dessous les lignes de lecture Java de l'exemple de fichier texte. Dans la sortie, vous pouvez voir que la dernière ligne est une liste.

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;


public class FileReading {

    public static void main(String[] args) {
        try {

            List<String> allLines = Files.readAllLines(Paths.get("samplefile.txt"));
            for (String line : allLines) {
                System.out.println(line);
            }
            System.out.println("Read line list " + allLines);
        } catch (IOException e) {
            e.printStackTrace();

        }
    }
}

Sortie : 1 ligne - lecture Java
2 lignes – Liste des données
Lire la liste des lignes [1 ligne - lecture Java, 2 lignes - données de liste]

RandomAccessFile

Utiliser un RandomAccessFile mode lecture et méthode readLine pour lire le fichier ligne par ligne.

import java.io.IOException;
import java.io.RandomAccessFile;


public class FileReading {

    public static void main(String[] args) {
        try {
            RandomAccessFile file = new RandomAccessFile("samplefile.txt", "r");
            String str;
            while ((str = file.readLine()) != null) {
                System.out.println(str);
            }
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Question : Comment Java lire un fichier texte ligne par ligne dans Array ?

Répondre :Utiliser les méthodes de classe Files pour lire le texte ligne par ligne sera un moyen très simple de le faire. Convertissez simplement la liste en Array comme ci-dessous.

String[] arrayLines = allLines.toArray(new String[0]);

Code complet

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;


public class FileReading {

    public static void main(String[] args) {
        try {

            List<String> allLines = Files.readAllLines(Paths.get("samplefile.txt"));
            String[] arrayLines = allLines.toArray(new String[0]);
            System.out.println("Array " + arrayLines);
        } catch (IOException e) {
            e.printStackTrace();

        }
    }
}

Sortie : Tableau [Ljava.lang.String;@3d24753a

Faites un commentaire ci-dessous en cas de doute et des suggestions ou des exemples.

Remarque : Cet exemple (Project) est développé dans IntelliJ IDEA 2018.2.6 (Community Edition)
JRE :11.0.1
JVM :VM serveur OpenJDK 64 bits par JetBrains s.r.o
macOS 10.14.1

Java 11

Tout Java lit le fichier ligne par ligne sont en Java 11, il peut donc changer selon Java 9 ou 10 ou les versions mises à niveau.|


Balise Java