개발일지/Java

Java FileReader, FileWriter

E-room 2022. 9. 24. 17:09
728x90

문자 기반 스트림

문자 데이터를 다룰 때 사용

여러 종류의 인코딩과 자바에서 사용하는 유니코드 간의 변환을 자동으로 처리

 

FileReader : 인코딩 -> 유니코드

FileWriter : 유니코드 -> 인코딩

 

FileWriter

바로 사용법을 알아보자

import java.io.FileWriter;
import java.io.IOException;

public class Main {
    public static void main(String args[]) {
        try {
            String fileName = "eroomFileWriter.txt";
            FileWriter writer = new FileWriter(fileName);

            String str = "이룸 File Writer 테스트!";
            writer.write(str);
            writer.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

FileWriter에 의해 생성된 txt파일과  그 내용


FileReader

방금 FileWriter로 생성한 파일을 읽어와 보도록 하자

import java.io.FileReader;
import java.io.IOException;

public class Main {
    public static void main(String args[]) {
        try {
            String fileName = "eroomFileWriter.txt";
            FileReader file = new FileReader(fileName);

            int data = 0;

            while((data=file.read()) != -1) {
                System.out.print((char)data);
            }
            file.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}
// 출력
이룸 File Writer 테스트!

 

BufferedReader

바이트 기반 스트림과 마찬가지로, Reader에도 성능을 개선할 수 있는 BufferedReader가 있다

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Main {
    public static void main(String args[]) {
        try {
            String fileName = "eroomFileWriter.txt";
            FileReader file = new FileReader(fileName);
            BufferedReader buffered = new BufferedReader(file);

            int data = 0;

            while((data=buffered.read()) != -1) {
                System.out.print((char)data);
            }
            file.close();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
}
// 출력
이룸 File Writer 테스트!
728x90