Cómo leer un archivo a una cadena en Java

Rupam Yadav 12 octubre 2023
  1. Files.readString() para leer una cadena de un archivo en Java 11
  2. Files.lines(file_path) para leer el archivo a la cadena en Java 8
  3. Files.readAllLines() para leer la cadena de un archivo en Java 7
  4. BufferedReader.readLine para leer cadenas de un archivo
Cómo leer un archivo a una cadena en Java

Presentaremos cómo podemos leer el contenido de un archivo y luego convertirlo en una cadena de Java.

A continuación está el archivo testFile.txt, que incluye algunos contenidos que queremos leer como una cadena de Java.

A B C D 1 2 3

Files.readString() para leer una cadena de un archivo en Java 11

Java 11 trae un nuevo método Files.readString() que nos permite leer el archivo fácilmente y sin escribir mucho código.

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();
    }
  }
}

Resultado:

A
B
C
D
1
2
3

Files.lines(file_path) para leer el archivo a la cadena en Java 8

La API Stream fue introducida en Java 8, que procesa el conjunto de datos de varias maneras.

La clase Files, como parte del paquete java.NIO, contiene un método de lines() que produce Stream<String> o un flujo de cadena de un archivo de texto.

Intentemos convertir el contenido del archivo en una cadena de Java usando el Stream API.

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();
    }
  }
}

Resultado:

A
B
C
D
1
2
3
Nota

Siempre tenga en cuenta que debe cerrar el chorro después de usarlo. Fíjese en el lines.close().

Asegura que la corriente se cierra una vez que el contenido ha sido impreso.

Files.readAllLines() para leer la cadena de un archivo en Java 7

La lectura de archivos no era tan fácil hasta Java 7, que trajo el nuevo método al paquete java.nio. Es el método Files.readAllLines() que devuelve una lista de cadenas del archivo. Cada cadena representa una sola línea del archivo.

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();
    }
  }
}

Resultado:

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

BufferedReader.readLine para leer cadenas de un archivo

También podemos obtener el contenido de nuestro archivo usando la clase BufferedReader, que lee el texto de un flujo de entrada.

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);
    }
  }
}

Resultado:

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

Artículo relacionado - Java String

Artículo relacionado - Java File