Wie man eine Datei in einen String liest

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Das Speichern von Daten in eine Datei ist nützlich für die permanente Speicherung. In Java gibt es vier Klassen, die zum Lesen von Dateien verwendet werden können: FileReader, Scanner, FileInputStream und BufferedReader. Diese Klassen gehören zum Paket java.io und werden zur Dateibearbeitung in Java verwendet.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/read_files("Read Files") java/FileandIOManagementGroup -.-> java/io("IO") subgraph Lab Skills java/user_input -.-> lab-117443{{"Wie man eine Datei in einen String liest"}} java/files -.-> lab-117443{{"Wie man eine Datei in einen String liest"}} java/create_write_files -.-> lab-117443{{"Wie man eine Datei in einen String liest"}} java/read_files -.-> lab-117443{{"Wie man eine Datei in einen String liest"}} java/io -.-> lab-117443{{"Wie man eine Datei in einen String liest"}} end

Erstellen einer Beispieldatei

Beginnen Sie mit der Erstellung einer Beispiel-.txt-Datei zum Lesen. Sie können jede Texteditor verwenden, um diese Datei zu erstellen, und sie kann beliebige Daten enthalten, die Sie lesen möchten. Beispiel:

This is the sample data stored in a file
Rahul:10025
Sohan:10026
Madan:10027
Jack:10028

Importieren der erforderlichen Klassen

Um die Datei zu lesen und ihren Inhalt in einen String zu konvertieren, müssen Sie die folgenden Klassen importieren:

import java.io.*;

Lesen einer Datei mit FileReader

Verwenden Sie die FileReader-Klasse, um Daten aus der Datei zu lesen. Ein Objekt der FileReader-Klasse zeigt auf den Anfang einer Datei. Verwenden Sie einen Puffer der Größe 1, um jedes Zeichen der Datei zu lesen und es an eine String-Variable anzuhängen.

try {
     // Schritt 1: Erstellen Sie ein neues FileReader-Objekt
     FileReader fr = new FileReader("path/to/your/file.txt");

     // Schritt 2: Erstellen Sie eine String-Variable, um den Inhalt der Datei zu speichern
     String fileData = "";

     // Schritt 3: Erstellen Sie eine ganzzahlige Variable, um jedes gelesene Zeichen zu speichern
     int c;

     // Schritt 4: Lesen Sie die Datei fort, bis das Ende der Datei erreicht ist
     while ((c = fr.read())!= -1) {

         // Schritt 5: Anhängen Sie jedes gelesene Zeichen an die fileData-Zeichenkette
         fileData += (char) c;
     }

     // Schritt 6: Drucken Sie den Inhalt der Datei
     System.out.println(fileData);

     // Schritt 7: Schließen Sie den Dateireader
     fr.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

Lesen einer Datei mit Scanner

Verwenden Sie die Scanner-Klasse, um Daten aus einer Textdatei zu lesen. Sie müssen die Textdatei als Eingabequelle für den Scanner angeben, und dann den Scanner mit der \\Z-Methode begrenzen, um die gesamten Daten auf einmal zu lesen und in einen String umzuwandeln.

try {
     File file = new File("path/to/file.txt");
     Scanner scanner = new Scanner(file);

     scanner.useDelimiter("\\Z");

     String fileData = scanner.next();
     System.out.println(fileData);

     scanner.close();
 } catch (FileNotFoundException e) {
     e.printStackTrace();
 }

Lesen einer Datei mit FileInputStream

Verwenden Sie die FileInputStream-Klasse, um Daten direkt aus der Datei in ein Byte-Array zu lesen. Erstellen Sie einen Puffer der gewünschten Größe (10 Bytes in unserem Beispiel), um die aus der Datei gelesenen Daten temporär zu speichern, und anhängen Sie sie an ein StringBuilder-Objekt. Schließlich verwenden wir die toString()-Methode, um den Inhalt des StringBuilder-Objekts in einen String umzuwandeln.

try {
     File file = new File("path/to/file.txt");
     FileInputStream fileInputStream = new FileInputStream(file);
     byte[] buffer = new byte[10];
     StringBuilder stringBuilder = new StringBuilder();

     int length;
     while ((length = fileInputStream.read(buffer))!= -1) {
         stringBuilder.append(new String(buffer, 0, length));
     }

     String fileData = stringBuilder.toString();
     System.out.println(fileData);

     fileInputStream.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

Lesen einer Datei mit BufferedReader

Verwenden Sie die BufferedReader-Klasse, um Daten aus einer Datei auf einfache Weise zu lesen. Sie wird alle Daten auf einmal lesen, und Sie können dann jede Zeile mit der readLine()-Methode ausgeben.

try {
     File file = new File("path/to/file.txt");
     BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
     String line;

     while ((line = bufferedReader.readLine())!= null) {
         System.out.println(line);
     }

     bufferedReader.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie in Java Daten aus einer Datei in einen String lesen. Es gibt mehrere Möglichkeiten, dies zu erreichen, darunter die Verwendung der Klassen FileReader, Scanner, FileInputStream und BufferedReader. Wir empfehlen Ihnen, diese Methoden selbst auszuprobieren, um zu verstehen, wie sie funktionieren und welche am besten für Ihren speziellen Anwendungsfall geeignet ist. Denken Sie daran, Ihren Code zu testen und den Pfad zu Ihrer Textdatei zu überprüfen.