문자 기반의 보조 스트림: (Buffered, InputStream, OutputStream) 읽기와 쓰기

2022. 4. 27. 11:15·자바/입출력 IO

1. BufferedReader와 BufferedWriter

- 버퍼를 이용해서 입출력의 효율을 높일 수 있도록 해주는 역할을 한다.

 

- 버퍼를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아진다.

 

- BufferedReader의 readLine()을 사용하면 라인 단위로 읽는다.

 

- BufferedWriter의 newLine()을 사용하면 줄바꿈을 해준다.

 

 

 

 

1-1. BufferedReader와 BufferedWriter를 이해하기 위한 예제(1)

 

Exercise019

( 문장 끝 ';'이 포함된 구문만 출력되게 하였다. )

 

 

 

 

2. InputStreamReader와 OutputStreamWriter

- 바이트 기반 스트림을 문자 기반 스트림으로 연결시켜주는 역할을 한다.

 

- 바이트 기반 스트림의 데이터를 지정된 인코딩의 문자 데이터로 변환하는 작업을 수행한다.

 

 

- 아래는 InputStreamReader의 생성자/메서드를 설명한다.

 

(1) InputStreamReader(InputStream in)

: OS에서 사용하는 기본 인코딩의 문자로 변환하는 InputStreamReader를 생성한다.

 

(2) InputStreamReader(InputStream in, String encoding)

: 지정된 인코딩을 사용하는 InputStreamReader를 생성한다.

 

(3) String getEncoding()

: InputStreamReader의 인코딩을 알려준다.

 

 

- 아래는 OutputStreamWriter의 생성자/메서드를 설명한다.

 

(1) OutputStreamWriter(OutputStream in)

: OS에서 사용하는 기본 인코딩의 문자로 변환하는 OutputStreamWriter를 생성한다.

 

(2) OutputStreamWriter(OutputStream in, String encoding)

: 지정된 인코딩을 사용하는 OutputStreamWriter를 생성한다.

 

(3) String getEncoding()

: OutputStreamWriter의 인코딩을 알려준다.

 

 

( 만약 한글 윈도우에서 중국어로 작성된 파일을 읽을 때, InputStreamReader(InputStream in,

String encoding)를 이용해서 인코딩이 중국어로 되어 있다는 것을 지정해주어야 글자가

깨지지 않는다. )

 

( OutputStreamWriter 또한 마찬가지이다. )

 

( 시스템 속성에서 sun.jnu.encoding의 값을 보면 OS에서 사용하는 인코딩의 종류를 알 수 있다. )

( 아래의 코드처럼 쓰면 된다. )

 

Properties prop = System.getProperties();

System.out.println(prop.get("sun.jnu.encoding"));

 

 

 

 

2-1. InputStreamReader와 OutputStreamWriter를 이해하기 위한 예제(1)

 

Exercise020

 

'자바 > 입출력 IO' 카테고리의 다른 글

표준 입출력과 File: RandomAccessFile  (0) 2022.04.27
표준 입출력과 File: System(in, out, err)  (0) 2022.04.27
문자 기반 스트림: (File, Piped) Reader/Write  (0) 2022.04.26
FilterOutputStream의 자손: Print 스트림(보조 스트림)  (0) 2022.04.25
InputStream의 자손: Sequence 입력 스트림(보조 스트림)  (0) 2022.04.25
'자바/입출력 IO' 카테고리의 다른 글
  • 표준 입출력과 File: RandomAccessFile
  • 표준 입출력과 File: System(in, out, err)
  • 문자 기반 스트림: (File, Piped) Reader/Write
  • FilterOutputStream의 자손: Print 스트림(보조 스트림)
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      코딩트리조별과제
      람다식
      java.time 패키지
      알고스팟
      자바 개념
      문자 기반 스트림
      outputstream
      InputStream
      map()
      ServerSocket
      serializable
      java.lang패키지
      스트림
      코드트리
      제자리 정렬
      Arrays
      Collections Framework
      안정 정렬
      중간연산
      선택 정렬
      file
      불안정 정렬
      안드로이드 스튜디오
      snail
      유용한 클래스
      소켓 프로그래밍
      TCP 소켓 프로그래밍
      다형성
      코딩테스트
      역직렬화
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    문자 기반의 보조 스트림: (Buffered, InputStream, OutputStream) 읽기와 쓰기
    상단으로

    티스토리툴바