Wie liest man eine Datei in Java in einen String ein

Rupam Yadav 12 Oktober 2023
  1. Files.readString() zum Lesen einer Zeichenkette aus einer Datei in Java 11
  2. Files.lines(file_path) zum Lesen von Dateien als String in Java 8
  3. Files.readAllLines() zum Lesen von Zeichenketten aus Dateien in Java 7
  4. BufferedReader.readLine zum Lesen von Zeichenketten aus einer Datei
Wie liest man eine Datei in Java in einen String ein

Wir werden vorstellen, wie wir den Inhalt einer Datei lesen und dann in einen Java-String konvertieren können.

Unten sehen Sie die Datei testFile.txt, die einige Inhalte enthält, die wir als Java-String lesen wollen.

A B C D 1 2 3

Files.readString() zum Lesen einer Zeichenkette aus einer Datei in Java 11

Java 11 bringt eine neue Methode Files.readString(), die es uns erlaubt, die Datei einfach und ohne viel Code zu schreiben zu lesen.

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
  public static void main(String[] args) {
    Path path = Paths.get("/Projects/testFile.txt");

    try {
      String content = Files.readString(path);
      System.out.println(content);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Ausgabe:

A
B
C
D
1
2
3

Files.lines(file_path) zum Lesen von Dateien als String in Java 8

Die Stream-API wurde in Java 8 eingeführt, die die gegebene Datenmenge auf verschiedene Weise verarbeitet.

Die Klasse Files, als Teil des java.NIO Pakets, enthält eine lines() Methode, die Stream<String> oder einen String-Stream aus einer Textdatei erzeugt.

Versuchen wir, den Dateiinhalt mit Hilfe der Stream-API in eine Java-Zeichenkette zu konvertieren.

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    try {
      Path path = Paths.get("/Projects/testFile.txt");
      Stream<String> lines = Files.lines(path);

      String content = lines.collect(Collectors.joining(System.lineSeparator()));
      System.out.println(content);
      lines.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

Ausgabe:

A
B
C
D
1
2
3
Hinweis

Denken Sie immer daran, den Strom nach der Benutzung zu schließen. Beachten Sie die lines.close().

Sie stellt sicher, dass der Stream geschlossen wird, sobald der Inhalt gedruckt wurde.

Files.readAllLines() zum Lesen von Zeichenketten aus Dateien in Java 7

Das Lesen von Dateien war nicht so einfach bis Java 7, das die neue Methode in das java.nio-Paket brachte. Es ist die Files.readAllLines() Methode, die eine Liste von Zeichenketten aus der Datei zurückgibt. Jede Zeichenkette repräsentiert eine einzelne Zeile der Datei.

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class Main {
  public static void main(String[] args) {
    try {
      Path path = Paths.get("/Projects/testFile.txt");
      List<String> contentList = Files.readAllLines(path, StandardCharsets.UTF_8);
      System.out.println(contentList);

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

Ausgabe:

[A, B, C, D, 1, 2, 3]

BufferedReader.readLine zum Lesen von Zeichenketten aus einer Datei

Wir können den Inhalt unserer Datei auch mit der Klasse BufferedReader erhalten, die den Text aus einem Eingabestrom liest.

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) throws IOException {
    String path = "/Projects/testFile.txt";

    try (BufferedReader br = new BufferedReader(new FileReader(path))) {
      String line = br.readLine();
      StringBuilder sb = new StringBuilder();

      while (line != null) {
        sb.append(line).append("\n");
        line = br.readLine();
      }

      String fileAsString = sb.toString();
      System.out.println(fileAsString);
    }
  }
}

Ausgabe:

A
B
C
D
1
2
3
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java String

Verwandter Artikel - Java File