In Java gibt es je nach Datengröße und Anwendungsfall mehrere Möglichkeiten, eine Textdatei zu lesen. Der java.io Und java.nio.file-Pakete Stellen Sie mehrere Klassen bereit, um das Lesen von Dateien effizient zu handhaben. Lassen Sie uns nacheinander die gängigen Ansätze besprechen.
1. Verwenden der BufferedReader-Klasse
BufferedReader Die Klasse liest Text aus einem Zeichenstrom und puffert die Zeichen für ein effizientes Lesen. Es wird oft um ein gewickelt FileReader oder InputStreamReader um die Leistung zu verbessern.
Syntax
JavaBufferedReader in = new BufferedReader(Reader in int size);
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); } }
Ausgabe
Ausgabe2. FileReader-Klasse zum Lesen von Textdateien
Der FileReader-Klasse wird zum Lesen von Textdateien in Java verwendet. Es liest Zeichen aus einer Datei und eignet sich zum Lesen von Klartext. Die Konstruktoren dieser Klasse gehen davon aus, dass die Standardzeichenkodierung und die Standardbytepuffergröße angemessen sind.
In dieser Klasse definierte Konstruktoren sind wie folgt:
- FileReader (Dateidatei): Erstellt einen neuen FileReader mit der Datei, aus der gelesen werden soll
- FileReader(FileDescriptor fd): Erstellt einen neuen FileReader mit dem FileDescriptor, aus dem gelesen werden soll
- FileReader(String fileName): Erstellt einen neuen FileReader mit dem Namen der Datei, aus der gelesen werden soll
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); } }
Ausgabe
Ausgabe3. Scannerklasse zum Lesen von Textdateien
Scannerklasse bietet eine einfache Möglichkeit, Textdateien zu lesen und primitive Typen oder Zeichenfolgen zu analysieren reguläre Ausdrücke . Es teilt die Eingabe mithilfe eines Trennzeichens (standardmäßig Leerzeichen) in Token auf.
Beispiel 1: Mit Verwendung von Schleifen
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()); } }
Ausgabe
Runde Mathematik Java
AusgabeBeispiel 2: Ohne Schleifen zu verwenden
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()); } }
Ausgabe
Ausgabe4. Die gesamte Datei in einer Liste lesen
Mit dem können wir eine ganze Textdatei in eine Liste einlesen Files.readAllLines() Methode aus der java.nio.file-Paket . Jede Zeile in der Datei wird zu einem Element in der Liste.
Syntax
öffentliche statische Liste readAllLines(Path pathCharset cs) löst eine IOException aus
Diese Methode erkennt Folgendes als Zeilenabschlusszeichen:
- u000Du000A -> Wagenrücklauf + Zeilenvorschub
- u000A -> Zeilenvorschub
- u000D -> Wagenrücklauf
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()); } }
Ausgabe
Ausgabe5. Lesen Sie eine Textdatei als String
Wir können in Java eine ganze Textdatei als einen einzelnen String lesen. Dies ist nützlich, wenn Sie den Dateiinhalt als Ganzes und nicht Zeile für Zeile verarbeiten möchten.
Syntax:
Fakultät in Java
String data = new String(Files.readAllBytes(Paths.get(fileName)));
Beispiel:
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); } }
Ausgabe
Ausgabe Quiz erstellen