Como ler um arquivo para uma string em Java

Rupam Yadav 12 outubro 2023
  1. Files.readString() para ler uma string a partir de um arquivo em Java 11
  2. Files.lines(file_path) para ler o arquivo para String no Java 8
  3. Files.readAllLines() para ler a string do arquivo em Java 7
  4. BufferedReader.readLine para ler string de um arquivo
Como ler um arquivo para uma string em Java

Apresentaremos como podemos ler o conteúdo de um arquivo e depois convertê-lo em uma string Java.

Abaixo está o arquivo testFile.txt, que inclui algum conteúdo que queremos ler como uma string Java.

A B C D 1 2 3

Files.readString() para ler uma string a partir de um arquivo em Java 11

Java 11 traz um novo método Files.readString() que nos permite ler o arquivo facilmente e sem escrever muito 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 ler o arquivo para String no Java 8

A API Stream foi introduzida no Java 8 que processa o array de dados de várias maneiras.

A classe Files, como parte do pacote java.NIO, contém um método lines() que produz Stream<String> ou um fluxo de string a partir de um arquivo texto.

Vamos tentar converter o conteúdo do arquivo em string Java utilizando 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

Tenha sempre em mente fechar o fluxo após utilizá-lo. Observe as lines.close().

Ele garante que o fluxo seja fechado uma vez que o conteúdo tenha sido impresso.

Files.readAllLines() para ler a string do arquivo em Java 7

A leitura dos arquivos não foi tão fácil até Java 7, que trouxe o novo método para o pacote java.nio. É o método Files.readAllLines() que retorna uma lista de strings do arquivo. Cada string representa uma única linha do arquivo.

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 ler string de um arquivo

Também podemos obter o conteúdo de nosso arquivo utilizando a classe BufferedReader, que lê o texto a partir de um fluxo 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

Artigo relacionado - Java String

Artigo relacionado - Java File