Java

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

ryeonng 2024. 5. 31. 17:22

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

파일 출력 스트림(문자 기반)은 자바에서 텍스트 데이터를 파일에 쓰기 위해 사용되는 스트림이다.
가장 일반적으로 사용되는 클래스는 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("추가 글 작성 가능");
			
			// flush
			writer.flush();
			
			System.out.println("파일에 데이터 쓰기 성공");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	} // end of main

} // end of class

 


 

BufferedWriter

는 자바에서 문자 출력 스트림에 대한 버퍼링을 제공하는 클래스이다.
버퍼링은 데이터를 임시 저장공간인 buffer에 모아둔 후, 일정량이 모이면 출력 장치로 한 번에 전송하는 기술로, 반복적인 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 = "output.txt";
		
		try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) {
			bw.write("첫 번째 줄 입니다.");
			bw.newLine();
			bw.write("두 번째 줄 입니다.");
			bw.newLine();
			bw.write("세 번째 줄 입니다.");
			
			// Buffer를 비우고 데이터 쓰기
			bw.flush();
			
		} catch (Exception e) {

		}
		
	} // end of main

} // end of class

 

'Java' 카테고리의 다른 글

고수준 스트림(Data/Object Stream)  (0) 2024.06.03
사용자모드와 커널모드  (4) 2024.05.31
파일 출력 스트림(바이트 기반)  (2) 2024.05.23
파일 입력 스트림(바이트 기반)  (0) 2024.05.23
Map 인터페이스  (0) 2024.05.23