개발이 좋아서/Java가 좋아서

I/O 기본2 - 문자 다루기 (BufferedReader)

zoaseo 2024. 11. 26. 16:13
public static final String FILE_NAME = "temp/hello.txt";

 

- OutputStreamWriter / InputStreamReader 사용

public static void main(String[] args) throws IOException {
    String writeString = "abc";
    System.out.println("write String: " + writeString);

    // 파일에 쓰기
    FileOutputStream fos = new FileOutputStream(FILE_NAME);
    OutputStreamWriter osw = new OutputStreamWriter(fos, UTF_8);

    osw.write(writeString);
    osw.close();

    // 파일에서 읽기
    FileInputStream fis = new FileInputStream(FILE_NAME);
    InputStreamReader isr = new InputStreamReader(fis, UTF_8);

    StringBuilder content = new StringBuilder();
    int ch;
    while ((ch = isr.read()) != -1) {
        content.append((char) ch);
    }
    isr.close();

    System.out.println("read String: " + content);
}

 

- FileWriter / FileReader 사용

public static void main(String[] args) throws IOException {
    String writeString = "ABC";
    System.out.println("write String: " + writeString);

    // 파일에 쓰기
    FileWriter fw = new FileWriter(FILE_NAME, UTF_8);
    fw.write(writeString);
    fw.close();

    // 파일에서 읽기
    StringBuilder content = new StringBuilder();
    FileReader fr = new FileReader(FILE_NAME, UTF_8);
    int ch;
    while ((ch = fr.read()) != -1) {
        content.append((char) ch);
    }
    fr.close();

    System.out.println("read String: " + content);
}

 

- BufferedWriter / BufferedReader 사용

private static final int BUFFER_SIZE = 8192;

public static void main(String[] args) throws IOException {
    String writeString = "ABC\n가나다";
    System.out.println("== Write String ==");
    System.out.println(writeString);

    // 파일에 쓰기
    FileWriter fw = new FileWriter(FILE_NAME, UTF_8);
    BufferedWriter bw = new BufferedWriter(fw, BUFFER_SIZE);
    bw.write(writeString);
    bw.close();

    // 파일에서 읽기
    StringBuilder content = new StringBuilder();
    FileReader fr = new FileReader(FILE_NAME, UTF_8);
    BufferedReader br = new BufferedReader(fr, BUFFER_SIZE);

    String line;
    while ((line = br.readLine()) != null) {
        content.append(line).append("\n");
    }
    br.close();

    System.out.println("== Read String ==");
    System.out.println(content);
}