본문 바로가기
Back-End/Java

File I/O : FileWriter, PrintWriter

by sharekim 2021. 4. 2.

이전에 배운 FileOutputStream 의 경우 Byte 단위로 출력해야 한다.

경량의 데이터로 Byte로 출력해야 하는 경우도 있겠지만 보통은 String 이 출력의 대상이 되지 않을까 한다.

String으로 출력하는 데는 두 가지 방법이 있다.

 

먼저 FileWriter.

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

public class FileWrite {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("c:/out.txt");
        for(int i=1; i<11; i++) {
            String data = i+" 번째 줄입니다.\r\n";
            fw.write(data);
        }
        fw.close();
    }
}

이전과 뭐가 다른가 싶을 수 있는데, FileOutputStream의 경우에는 write() 메서드 안에 data.getBytes가 들어가고

PrintWriter의 경우에는 data가 들어간다.

FileOutputStream은 파라미터로 Byte 배열이 들어가고, PrintWriter는 파라미터로 String이 들어간단 얘기다.

 

 

 

그럼 FileWriter와 다른 PrintWriter는 뭘까

import java.io.IOException;
import java.io.PrintWriter;

public class FileWrite {
    public static void main(String[] args) throws IOException {
        PrintWriter pw = new PrintWriter("c:/out.txt");
        for(int i=1; i<11; i++) {
            String data = i+" 번째 줄입니다.";
            pw.println(data);
        }
        pw.close();
    }
}

PrintWriter도 FileWriter와 마찬가지로 String의 파라미터를 가진다.

다만 차이는 PrintWriter는 System.out.println과 마찬가지로 println이 가능해서 한줄 띄기를 지원한다.

FileWriter가 String content의 마지막에 /r/n을 추가해야하는 것과 달리 온전한 컨텐츠를 입력할 수 있다는 얘기다.

'Back-End > Java' 카테고리의 다른 글

File I/O : FileInputStream, BufferedReader  (0) 2021.04.02
File I/O : FileWriter 로 내용 추가하기  (0) 2021.04.02
File I/O : FileOutputStream  (0) 2021.04.01

댓글