달력

6

« 2025/6 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
바이트 스트림, 문자스트림 모두 동기화 정책을 정의하고 있다.

java.nio 패키지에서 제공하는 인터럽트 가능한 채널은 스트림을 사용한 스레드가 인터럽트되었을 때 스트림을 닫는 인터럽션을 지원한다. 

Filter 스트림
Filter스트림은 스트림들을 연결하여 더 유용한 복합 스트림을 만들어 낼 수 있다.
각각의 필터 스트림은 실제 입력과 출력 처리를 다른 스트림에 위임해야 한다.
Filter Stream은 데이터를 읽고 쓰고 변형하는 처리를 할 수 있다.

protected UpperCaseConverter(Reader reader) {
super(reader);
// TODO Auto-generated constructor stub
}
@Override
public int read() throws IOException {
// TODO Auto-generated method stub
//문자한개를 읽고 이를 정수로 변환.
int c = super.read();
return (c == -1 ? c : Character.toUpperCase((char ) c));
}
@Override
public int read(char[] cbuf, int off, int len) throws IOException {
// TODO Auto-generated method stub
int nread = super.read(cbuf, off, len);
int last = off + nread;
for (int i = 0; i < last; i++) {
cbuf[i] = Character.toUpperCase(cbuf[i]);
}
return nread;
}

위 소스를 보면 오버라이드를 하지만 간단한 작업만 추가하고 나머지는 부모 클래스에게 위임한다. 

Buffered 스트림
stream.read을 호출 할 때마다 파일 시스템 레벨까지 내려가므로 비효율적이다.
Buffered 스트림을 이용하면 한번 호출시마다 버퍼에 담아서 가져오므로 효율적이다.
BufferedReader의 readLine 함수는 한줄 씩 버퍼에 담아서 가져온다. 

'JAVA이야기' 카테고리의 다른 글

PushBackStream  (0) 2011.07.30
Piped Stream  (0) 2011.07.29
스트림 클래스  (0) 2011.07.29
스트림개요  (0) 2011.07.29
클래스 로딩-4  (0) 2011.07.28
:
Posted by НooпeУ


Code Start Code End