En Java, il existe plusieurs façons de lire un fichier texte en fonction de la taille de vos données et de votre cas d'utilisation. Le java.io et paquets java.nio.file fournir plusieurs classes pour gérer efficacement la lecture des fichiers. Discutons des approches courantes une par une.
1. Utilisation de la classe BufferedReader
BufferedReader La classe lit le texte à partir d'un flux de caractères et met les caractères en mémoire tampon pour une lecture efficace. Il est souvent enroulé autour d'un Lecteur de fichiers ou Lecteur de flux d'entrée pour améliorer les performances.
Syntaxe
JavaBufferedReader in = new BufferedReader (Lecteur en taille int);
import java.io.*; public class UsingBufferReader { public static void main(String[] args) throws Exception{ // Creating BufferedReader for Input BufferedReader bfri = new BufferedReader( new InputStreamReader(System.in)); System.out.print('Enter the Path : '); // Reading File name String path = bfri.readLine(); BufferedReader bfro = new BufferedReader(new FileReader(path)); String st; while ((st = bfro.readLine()) != null) System.out.println(st); } }
Sortir
Sortir2. Classe FileReader pour la lecture d'un fichier texte
Le Classe FileReader est utilisé pour lire des fichiers texte en Java. Il lit les caractères d'un fichier et convient à la lecture de texte brut. Les constructeurs de cette classe supposent que le codage des caractères par défaut et la taille du tampon d'octets par défaut sont appropriés.
Les constructeurs définis dans cette classe sont les suivants :
- FileReader (fichier fichier) : Crée un nouveau FileReader en fonction du fichier à lire
- FileReader (FileDescriptor fd) : Crée un nouveau FileReader étant donné le FileDescriptor à partir duquel lire
- FileReader (String fileName) : Crée un nouveau FileReader en fonction du nom du fichier à lire
import java.io.*; public class UsingFileReader { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print('Enter the Path : '); // Reading File name String path = br.readLine(); FileReader fr = new FileReader(path); int i; // Holds true till there is nothing to read while ((i = fr.read()) != -1) // Print all the content of a file System.out.print((char)i); } }
Sortir
Sortir3. Classe de scanner pour lire un fichier texte
Classe de scanner fournit un moyen simple de lire des fichiers texte et d'analyser des types primitifs ou des chaînes à l'aide de expressions régulières . Il divise l'entrée en jetons à l'aide d'un délimiteur (par défaut des espaces).
Exemple 1 : Avec l'utilisation de boucles
Javaimport java.io.*; import java.util.Scanner; public class UsingScannerClass { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print('Enter the Path : '); // Reading File name String path = br.readLine(); // pass the path to the file as a parameter File file = new File(path); Scanner sc = new Scanner(file); while (sc.hasNextLine()) System.out.println(sc.nextLine()); } }
Sortir
quel est le cas en SQL
SortirExemple 2 : Sans utiliser de boucles
Javaimport java.io.*; import java.util.Scanner; public class ReadingEntireFileWithoutLoop { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print('Enter the Path : '); // Reading File name String path = br.readLine(); File file = new File(path); Scanner sc = new Scanner(file); // we just need to use \Z as delimiter sc.useDelimiter('\Z'); System.out.println(sc.next()); } }
Sortir
Sortir4. Lire l'intégralité du fichier dans une liste
Nous pouvons lire un fichier texte entier dans une liste en utilisant le Fichiers.readAllLines() méthode de la paquet java.nio.file . Chaque ligne du fichier devient un élément de la liste.
Syntaxe
La liste statique publique readAllLines (Path pathCharset cs) lance IOException
Cette méthode reconnaît les éléments suivants comme terminateurs de ligne :
- u000Du000A -> Retour chariot + Saut de ligne
- u000A -> Saut de ligne
- u000D -> Retour chariot
import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.*; import java.util.*; public class ReadFileIntoList { public static List<String> readFileInList(String fileName) { // Created List of String List<String> lines = Collections.emptyList(); try { lines = Files.readAllLines( Paths.get(fileName) StandardCharsets.UTF_8); } catch(IOException e) { e.printStackTrace(); } return lines; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print('Enter the Path : '); // Reading File name String path = br.readLine(); List l = readFileInList(path); // Iterator iterating over List Iterator<String> itr = l.iterator(); while (itr.hasNext()) System.out.println(itr.next()); } }
Sortir
Sortir5. Lire un fichier texte sous forme de chaîne
Nous pouvons lire un fichier texte entier sous la forme d’une seule chaîne en Java. Ceci est utile lorsque vous souhaitez traiter le contenu du fichier dans son ensemble plutôt que ligne par ligne.
Syntaxe:
np.où
Données de chaîne = new String(Files.readAllBytes(Paths.get(fileName)));
Exemple:
Javapackage io; import java.nio.file.*; public class ReadTextAsString { public static String readFileAsString(String fileName) throws Exception { String data = ''; data = new String( Files.readAllBytes(Paths.get(fileName))); return data; } public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print('Enter the Path : '); // Reading File name String path = br.readLine(); String data = readFileAsString(path); System.out.println(data); } }
Sortir
Sortir Créer un quiz