역할
BufferedWriter는 버퍼를 이용하여 데이터의 출력을 다루는 함수입니다.
버퍼를 사용한다는 것은 버퍼에 출력문자열을 저장했다가 버퍼가 다 차거나 사용자의 코드로(flush) 요청이 들어오면 버퍼에 있던 문자열을 한 번에 출력한다는 것입니다.
System.out.println()메서드와 역할은 비슷하지만 Scanner와 BufferedReader의 차이처럼 장단점이 존재합니다.
System.out.println()과 BufferedWriter에 대해 알아두고 상황에 맞는 출력을 사용하는 것이 좋습니다.
파해쳐보기
System.out.pritnln과 비교
System.out.print/ln()은 Scanner와 마찬가지로 사용자에게 편리성을 제공합니다.
println()으로 개행을 따로하지않아도 적용하게 해주며 파라미터로 다양한 타입이 올 수 있도록 오버로딩 되어 있습니다.
하지만 System.out.print/ln는 속도면에서 효율이 떨어지게 됩니다. 정규식, 동기화 등의 이유로 속도가 저하되게 됩니다.
BufferedWriter는 개행을 하려면 따로 해주어야하고 System.out.print/ln보다는 편리하진 않지만 속도는 굉장히 빠릅니다.
따라서 단순히 데이터를 저장하여 출력하는 목적이라면 BufferedWrtier를 활용하는 것이 좋고,
속도는 느려도되지만 여러가지 데이터 타입을 출력해야하고 개행을 편하게 하는 목적이라면 System.out.println을 사용하면됩니다.
BufferedWriter import
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
BufferedWriter를 사용하기 위해선 위와 같이 import문이 정의되어있어야 합니다.
예외처리
public static void main(String[] args) throws IOException
BufferedWriter를 사용하기 위해선 main메서드 뒤에 throws IOException으로 예외를 던져줘야합니다.
BufferedWriter 객체생성
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
위의 코드는 BufferedWriter를 사용하기 위한 객체를 생성해주는 코드입니다.
BufferedWriter 메서드
- writer()는 버퍼에 출력문을 저장합니다. 개행기능이 없기때문에 개행을 원한다면 "\n"을 버퍼에 추가해주면 됩니다.
- flush()는 버퍼 안에 있는 모든 문자열을 출력합니다.
- close() 버퍼를 모두 사용했으면 스트림을 종료하는 메서드입니다.
정리
BufferedWriter는 속도 위주의 목적으로 사용, System.out.println은 편리성 위주의 목적으로 사용
writer()메서드를 통해 버퍼에 입력하며, flush로 버퍼를 출력한다.
'Language > Java' 카테고리의 다른 글
[JAVA] 다형성 (0) | 2024.06.02 |
---|---|
[Java] - 배열(Array) (0) | 2023.10.23 |
[Java] - BufferedReader (0) | 2023.10.18 |
[Java] Scanner (0) | 2023.10.18 |
연산자와 타입의 범위 (0) | 2023.08.06 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!