입력스트림과 출력 스트림 개념(2)

2022. 4. 26. 21:08java/java

*OutputStream

 1)바이트 기반 출력 스트림의 최상위 클래스로 추상 클래스이다.

 2)OutputStream의 주요 메소드

flush() 메소드는 출력메소드를 사용한다고 데이터들이 곧바로 출력되는게 아니라 버퍼에 잔류했다가 버퍼가 차면 그때 한번에 내보내는데, 그때 flush()메소드를 사용하면 그냥 내보낸다

 

나머지는 그야말로 inputStream과 똑같다. 간단한 예시를 제외하곤 더이상의 설명은 생략한다.

 

write(int b)

OutputStream os = new FileOutStream("c:/test.txt");
byte[] data = "ABC".getBytes();					//"A", "B", "C"문자열로부터 getBytes()메소드를 호출해
												//byte배열을 얻어냄
for(int i = 0; i < data.length; i++ ) {
	os.write(data[i]); //"A, B, C"를 하나씩 출력
}
os.flush();
os.close();

 

write(byte [] b)

OutputStream os = new FileOutStream("c:/test.txt");
byte[] data = "ABC".getBytes();					
os.write(data);

os.flush();
os.close();

 

write(byte[] b, int off, int len)

OutputStream os = new FileOutStream("c:/test.txt");
byte[] data = "ABC".getBytes();

os.write(data, 1, 2);      //"BC"출력 (1번째 인덱스부터 2개만 출력시켜라)

os.flush();
os.close();

 

*Reader

 1)문자 기반 입력 스트림의 최상위 클래스로 추상 클래스이다.

 2) Reader의 주요 메소드

리턴타입 메소드 설명
int read() 입력 스트림으로부터 한 개의 문자를 읽고 리턴한다.
int read(char[] cbuf) 입력 스트림으로부터 읽은 문자들을 매개값으로 주어진 문자 배열 cbuf에 저장하고
실제로 읽은 문자 수를 리턴한다.
int read(char[] cbuf,
int off, int len)
입력 스트림으로터 len개의 문자를 일고 매개값으로 주어진 문자 배열cbuf[off] 부터 len개까지 저장한다. 그리고 실제로 읽은 문자 수인 len개를 리턴한다.
void close() 사용한 시스템 자원을 반납하고 입력 스트림을 닫는다.

int (4 byte)

[  ] [  ] [ d] [ d] = read()

 

1) read() 메소드

Reader reader = new FileReader("C:/test.txt");
int readData;
while ((readData=reader.read()) != -1) {
	char charData = (char)readData;
}

 설명 생략-!

 

*Writer

 1) 문자 기반 출력 스트림의 최상위 클래스로 추상 클래스이다.

 

 2)Writer의 주요 메서드

리턴 타입 메소드 설명
void write(int c) 출력 스트림으로 주어진 한 문자를 보낸다
void write(char[] cbuf) 출력 스트림으로 주어진 문자 배열 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() 사용한 시스템 자원을 반납하고 출력 스트림을 닫는다.

 

write(int c)

Writer writer = new FileWriter("C:/test.txt");
char[] data = "홍길동".toCharArray(); //char형 배열로 변환 후 data 배열에 저장
for(int i = 0; i < data.length; i++) {
	writer.write(data[i]); //"홍", "길", "동"을 하나씩 출력
}

 

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

 

생-!

'java > java' 카테고리의 다른 글

콘솔 입출력  (0) 2022.04.28
스레드 상태 제어  (0) 2022.04.28
스레드 상태  (0) 2022.04.26
동기화 메소드와 동기화 블록  (0) 2022.04.26
입력 스트림과 출력 스트림 개념  (0) 2022.04.25