Java에서 파일을 문자열로 읽는 방법

Rupam Yadav 2023년10월12일
  1. Java 11의 파일에서 문자열을 읽는Files.readString()
  2. Java 8에서 파일을 문자열로 읽는Files.lines (file_path)
  3. Java 7의 파일에서 문자열을 읽는Files.readAllLines()
  4. 파일에서 문자열을 읽는BufferedReader.readLine
Java에서 파일을 문자열로 읽는 방법

파일의 내용을 읽고 Java 문자열로 변환하는 방법을 소개합니다.

아래는testFile.txt 파일로, Java 문자열로 읽고 싶은 내용을 담고 있습니다.

A B C D 1 2 3

Java 11의 파일에서 문자열을 읽는Files.readString()

Java 11에는 많은 코드를 작성하지 않고도 파일을 쉽게 읽을 수있는 새로운 메서드Files.readString()이 있습니다.

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

출력:

A
B
C
D
1
2
3

Java 8에서 파일을 문자열로 읽는Files.lines (file_path)

Stream API는 주어진 데이터 세트를 다양한 방식으로 처리하는 Java 8에서 도입되었습니다.

java.NIO 패키지의 일부인Files 클래스는Stream <String>또는 텍스트 파일에서 문자열 스트림을 생성하는lines()메소드를 포함합니다.

Stream API를 사용하여 파일 내용을 Java 문자열로 변환 해 보겠습니다.

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

출력:

A
B
C
D
1
2
3
노트

스트림을 사용한 후에는 항상 닫으십시오. lines.close()에 주목하십시오.

콘텐츠가 인쇄되면 스트림이 닫히도록합니다.

Java 7의 파일에서 문자열을 읽는Files.readAllLines()

파일 읽기는java.nio 패키지에 새로운 메소드를 도입 한 Java 7 이전에는 쉽지 않았습니다. 파일에서 문자열 목록을 반환하는Files.readAllLines()메서드입니다. 각 문자열은 파일의 한 줄을 나타냅니다.

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

출력:

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

파일에서 문자열을 읽는BufferedReader.readLine

입력 스트림에서 텍스트를 읽는BufferedReader 클래스를 사용하여 파일의 내용을 가져올 수도 있습니다.

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

출력:

A
B
C
D
1
2
3
작가: Rupam Yadav
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

관련 문장 - Java String

관련 문장 - Java File