yeny_lab

[혼자 공부하는 자바] 8/14 14-1 [입출력 스트림] [문자 기반 스트림] [문자 입출력 스트림] [Writer] [Reader]

2020. 8. 14. 00:12·JAVA
728x90

 


입출력스트림에 관한 전체적 내용은 이 포스팅

 

[혼자 공부하는 자바] 8/13 14-1 [입출력 스트림] [바이트 기반 스트림] [바이트 입출력 스트림] [Input

헉 마지막 챕터 14 요거 하고 처음부터 쭉 보면서 복습하기루 ㅇ입출력 스트림 이해, 입출력 스트림 클래스 선택할 줄 알기 ㅇ바이트 기반 입출력 스트림 사용할 수 있기 ㅇ문자 기반 입출력 스��

splendidlolli.tistory.com

아까 바이트 기반 입출력 스트림인 InputStream, OutputStream을 학습했다.

 

여기서는 이제 '문자 입출력 스트림'을 공부해보겠다.

문자 출력 스트림: Writer

문자 입력 스트림: Reader

 


문자 출력 스트림 Writer

리턴타입 메소드 설명
void write(int c) 매개값으로 주어진 한 문자를 보낸다.
void write(char[] cbuf) 매개값 배열의 모든 문자를 보낸다.
void write(char[] cbuf, int off, int len) 매개값 배열에서 cbuf[off]부터 len개까지 문자를 보낸다. 
void write(String str) 매개값 문자열을 보낸다.
void write(String str, int off, int len) 매개값 문자열에서 off순번부터 len개까지의 문자를 보낸다.
void flush() 버퍼에 잔류하는 모든 문자를 출력
void close() 출력스트림 닫기

 

자식 클래스 : FileWriter, BufferedWriter, PrintWriter, OutputStreamWriter ...

 


 

ㅇwrite(int c) 메소드

=>매개변수 int(4byte)에서 끝 2byte(=>2개의 문자)만 출력 스트림으로 보낸다. 

 

○예제 : 'A', 'B', 'C'가 저장된 각각의 char을 파일 C:/Temp/test7.txt로 출력해서 test7.txt의 내용으로 저장하기

(한 문자씩 출력하게 된다)

 

 


 

ㅇwrite(char[] cbuf) 메소드

=>매개값 char[] 배열의 모든 문자를 출력스트림으로 보낸다.

 

 

 

○예제 : 배열 전체 출력하기


 

ㅇwrite(char[] cbuf, int off, int len) 메소드

c[off]부터 len개의 문자를 출력 스트림으로 보낸다.

 

○예제


ㅇwrite(String str)와 write(String str, int off, int len) 메소드

 

Writer에는 위의 메소드가 있다 왜?!?

문자열을 조금 더 쉽게 보내려고!

문자열 전체를 출력 스트림으로 보내기, 그리고 문자열의 off순번부터해서 len개까지의 문자를 보내기 메소드다.

 

○예제 : 

 


 

문자 입력 스트림 Reader

Reader클래스의 주요 메소드

리턴 타입 메소드 설명
int read() 1개의 문자를 읽고 리턴
int read(char[] cbuf) 읽은 문자들을 '매개값 문자 배열에 저장' -> 읽은 문자수 리턴
int read(char[] cbuf, int off, int len) len개의 문자 읽고 -> 매개값 문자배열 cbuf[off]부터 len개까지 저장 -> 읽은 문자 수 리턴 
void close() 입력스트림 닫기

 

자식 클래스 : FileReader, BufferedReader, InputStreamReader ...

 

 


ㅇread() 메소드

=>입력 스트림으로부터 1개문자(2byte)읽고, int(4byte)타입으로 리턴 (=>끝 2byte에 문자 데이터가 들어있다.)

 

 

char charData = (char) read();

 

+더 이상 입력스트림으로부터 문자를 읽을 수 없을 경우=> read() 메소드가 -1을 리턴한다.

○예제 : C:/Temp/test7.txt에 저장한 내용을 한 문자씩 끝까지 읽기

Reader로 반복해서 한 문자씩 읽고 모니터에 출력


ㅇread(char[] cbuf) 메소드

 

=>문자 배열의 길이만큼 문자를 읽고 배열에 저장한다 + 읽은 문자수를 리턴

 

++입력스트림에서 3개의 문자가 들어왔을 때, 길이 2인 문자배열로 두번 읽어낼 수도 있다.

다음 그림과 같다. (내용: 혼공자 책 610페이지)

○예제 : 


ㅇread(char[] cbuf, int off, int len)

 

=>아까랑 같음. 그리고 읽은 문자 수인 len을 리턴한다. 

입력스트림 Reader에서 저 매개값에 쓴 것들만 배열에 저장한다.

한번에 읽어들이는 문자 수를 len을 통해 조절 가능하다는 점, 시작 인덱스를 지정 가능하다는 점.

 

○예제: 

 

더보기

참고: 

아까 만든 출력 스트림에서 

writer.write(array, 1, 3); 했기 때문에 

데이터 도착지인 test9.txt에는 BCD라고 저장되어 있었다.


입출력 스트림

바이트 기반/문자 기반 입출력 스트림

InputStream, OutputStream, Reader, Writer

학습했다.

728x90

'JAVA' 카테고리의 다른 글

[6주차] 기본미션 + 선택미션 [혼공단] [혼공자]  (0) 2020.08.16
[혼자 공부하는 자바] 8/16 14-2 [보조 스트림] [문자변환] [성능향상] [기본타입입출력] [프린터]  (0) 2020.08.16
[혼자 공부하는 자바] 8/13 14-1 [입출력 스트림] [바이트 기반 스트림] [바이트 입출력 스트림] [InputStream] [OutputStream]  (0) 2020.08.13
[혼자 공부하는 자바] 8/13 13-2 [컬렉션프레임워크] [LIFO(후입선출)/Stack클래스] [FIFO(선입선출)/Queue인터페이스]  (0) 2020.08.13
[5주차] 기본미션 + 선택미션 [혼공단] [혼공자]  (0) 2020.08.09
'JAVA' 카테고리의 다른 글
  • [6주차] 기본미션 + 선택미션 [혼공단] [혼공자]
  • [혼자 공부하는 자바] 8/16 14-2 [보조 스트림] [문자변환] [성능향상] [기본타입입출력] [프린터]
  • [혼자 공부하는 자바] 8/13 14-1 [입출력 스트림] [바이트 기반 스트림] [바이트 입출력 스트림] [InputStream] [OutputStream]
  • [혼자 공부하는 자바] 8/13 13-2 [컬렉션프레임워크] [LIFO(후입선출)/Stack클래스] [FIFO(선입선출)/Queue인터페이스]
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
[혼자 공부하는 자바] 8/14 14-1 [입출력 스트림] [문자 기반 스트림] [문자 입출력 스트림] [Writer] [Reader]
상단으로

티스토리툴바