Java - BufferedWriter로 파일 쓰기

BufferedWriter를 이용하여 파일에 문자열을 저장하는 방법을 소개합니다.

BufferedWriter는 파일을 쓸 때 버퍼를 사용하기 때문에, 다른 Writer 클래스보다 파일 접근 횟수가 적고, 저장 속도 측면에서 성능이 좋을 수 있습니다.

1. BufferedWriter.append(), close()

BufferedWriter의 생성자에 파일 경로를 지정하여 생성할 수 있습니다.

BufferedWriter.append()는 파일의 끝에 문자열을 추가합니다. close()가 호출되면 append()에 의해 추가된 문자열이 파일에 저장됩니다.

아래 예제에서는 try with resources 구문을 사용하여, try 구문이 종료되면 BufferedWriter.close()가 호출됩니다. 만약 실수로 close() 호출을 하지 않으면, 데이터가 파일에 저장되지 않습니다.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Example {
    public static void main(String[] args) {

        File file = new File("/home/js/IdeaProjects/JavaExample/src/main/java/sample1.txt");

        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
            writer.append("Test1\n");
            writer.append("Test2\n");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Output:

Test1
Test2

2. BufferedWriter.flush()

BufferedWriter.flush()는 현재까지 append()로 추가된 문자열을 파일에 저장합니다.

close() 호출 전에 flush()를 호출하면 추가한 내용들이 파일에 저장됩니다.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Example {
    public static void main(String[] args) throws IOException {

        File file = new File("/home/mjs/IdeaProjects/JavaExample/src/main/java/sample1.txt");

        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
        writer.append("Test1\n");
        writer.append("Test2\n");
        writer.flush();
    }
}

Output:

Test1
Test2
Loading script...
codechachaCopyright ©2019 codechacha