파일 출력 스트림(문자 기반 스트림) - 15

목차

    파일 출력 스트림(문자 기반 스트림) - 15

    💡 학습 목표
        1. 기반 스트림 FileWriter
        2. 보조 스트림 BufferedWriter

    1. 기반 스트림 FileWriter

    파일 출력 스트림(문자 기반)은 자바에서 텍스트 데이터를 파일에 쓰기 위해 사용되는 스트림입니다. 가장 일반적으로 사용되는 클래스는FileWriter입니다. FileWriter는 문자 데이터를 파일에 쓸 때 사용되며, 이 클래스는 내부적으로 파일 시스템과 통신하여 데이터를 문자 단위로 파일에 쓰게 해줍니다. 이는 바이트 기반 스트림인
    FileOutputStream과 대비되며, 텍스트 데이터를 처리할 때는 FileWriter가 더 적합합니다.

    FileOutputStream : 바이너리 데이터를 파일에 쓰기에 특히 적합
    이미지, 비디오, 오디오 파일 쓰기,직렬화 데이터 쓰기,압축 파일 생성

    시나리오 코드 1

    package io.file.ch06;
    
    import java.io.FileWriter;
    
    public class MyFileWriter {
    
    	public static void main(String[] args) {
    
    		// 파일에다가 문자 기반 스트림을 활용해서 데이터를 써보자.
    
    		String data = "Hello, Java File I/O";
    
    		try (FileWriter writer = new FileWriter("example.txt")) {
    			// 파일에다가 문자열 쓰기
    			writer.write(data);
    			writer.write("\n"); // 한줄 띄움
    			writer.write("추가 글을 작성할 수 있음");
    			
    			// 물을 내리다.
    			writer.flush();
    			
    			System.out.println("파일에 데이터 쓰기 성공");
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		
    
    	}
    
    }

    2. 보조 스트림 BufferedWriter

    BufferedWriter는 자바에서 문자 출력 스트림에 대한 버퍼링을 제공하는 클래스입니다. 버퍼링은 데이터를 임시 저장공간인 버퍼에 모아둔 후, 일정량이 모이면 출력 장치로 한 번에 전송하는 기술로, 반복적인 I/O 작업에 따른 성능 저하를 줄여줍니다. BufferedWriter를 사용하면 데이터를 라인 단위로 쉽게 작성할 수 있으며, 출력 성능을 향상시킬 수 있습니다.

    시나리오 코드 2

    package io.file.ch06;
    
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    
    // 버퍼를 활용한 파일 출력 스트림의 사용
    public class MyFileBufferedWriter {
    
    	public static void main(String[] args) {
    
    		String filePath = "output3.txt";
    		try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) {
    			bw.write("첫번째 줄입니다.");
    			bw.newLine();
    			bw.write("두번째 줄입니다.");
    			bw.newLine();
    			bw.write("세번째 줄입니다.");
    			
    			// 버퍼를 비우고 데이터 쓰기
    			bw.flush();
    		} catch (Exception e) {
    			// TODO: handle exception
    		}
    
    	} // end of main
    
    } // end of class

    Java 유용한 클래스 - 3 으로 돌아가기