파일을 String 으로 읽는 방법

JavaBeginner
지금 연습하기

소개

파일에 데이터를 저장하는 것은 영구적인 저장을 위해 유용합니다. Java 에서는 파일을 읽는 데 사용할 수 있는 네 가지 클래스가 있습니다: FileReader, Scanner, FileInputStream, 그리고 BufferedReader. 이 클래스들은 java.io 패키지의 일부이며, Java 에서 파일 처리에 사용됩니다.

샘플 파일 생성

읽을 샘플 .txt 파일을 먼저 생성합니다. 이 파일은 어떤 텍스트 편집기를 사용하여도 생성할 수 있으며, 읽고 싶은 어떤 데이터든 포함할 수 있습니다. 예시:

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

필요한 클래스 임포트

파일을 읽고 내용을 문자열로 변환하려면 다음 클래스를 임포트해야 합니다:

import java.io.*;

FileReader 를 사용하여 파일 읽기

FileReader 클래스를 사용하여 파일에서 데이터를 읽습니다. FileReader 클래스의 객체는 파일의 시작 부분을 가리킵니다. 크기가 1 인 버퍼를 사용하여 파일의 각 문자를 읽고, 이를 String 변수에 추가합니다.

try {
     // Step 1: Create a new FileReader object
     FileReader fr = new FileReader("path/to/your/file.txt");

     // Step 2: Create a String variable to hold the contents of the file
     String fileData = "";

     // Step 3: Create an integer variable to hold each character read
     int c;

     // Step 4: Keep reading the file until the end of the file has been reached
     while ((c = fr.read()) != -1) {

         // Step 5: Append each character read to the fileData string
         fileData += (char) c;
     }

     // Step 6: Print the contents of the file
     System.out.println(fileData);

     // Step 7: Close the file reader
     fr.close();

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

Scanner 를 사용하여 파일 읽기

Scanner 클래스를 사용하여 텍스트 파일에서 데이터를 읽습니다. 스캐너에 텍스트 파일을 입력 소스로 제공해야 하며, \\Z 메서드로 스캐너를 구분하여 전체 데이터를 한 번에 읽고 문자열로 변환합니다.

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

FileInputStream 을 사용하여 파일 읽기

FileInputStream 클래스를 사용하여 파일에서 바이트 배열로 직접 데이터를 읽습니다. 원하는 크기 (예제에서는 10 바이트) 의 버퍼를 생성하여 파일에서 읽은 데이터를 임시로 저장한 다음, StringBuilder 객체에 추가합니다. 마지막으로, toString() 메서드를 사용하여 StringBuilder 객체의 내용을 String으로 변환합니다.

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

BufferedReader 를 사용하여 파일 읽기

BufferedReader 클래스를 사용하여 파일에서 데이터를 간단하게 읽습니다. 모든 데이터를 한 번에 읽으며, readLine() 메서드를 사용하여 줄 단위로 출력할 수 있습니다.

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

요약

이 랩에서는 Java 에서 파일에서 String으로 데이터를 읽는 방법을 배웠습니다. FileReader, Scanner, FileInputStream, 그리고 BufferedReader 클래스를 포함하여 이를 달성하는 여러 가지 방법이 있습니다. 이러한 메서드가 어떻게 작동하는지, 그리고 특정 사용 사례에 가장 적합한 메서드가 무엇인지 이해하기 위해 직접 실험해 보는 것을 권장합니다. 코드를 테스트하고 텍스트 파일의 경로를 확인하는 것을 잊지 마십시오.