JavaTM Platform
Standard Ed. 6

java.io
클래스 Reader

java.lang.Object 
  상위를 확장 java.io.Reader
모든 구현된 인터페이스:
Closeable , Readable
직계의 기존의 서브 클래스:
BufferedReader , CharArrayReader , FilterReader , InputStreamReader , PipedReader , StringReader


public abstract class Reader
extends Object
implements Readable , Closeable

문자 스트림을 읽어들이기 위한 abstract 클래스입니다. 서브 클래스에서의 구현이 필요한 메소드는, read(char[], int, int)와 close() 뿐입니다. 다만, 대부분의 서브 클래스는, 효율성의 향상 또는 기능의 추가, 혹은 그 양쪽 모두를 위해서(때문에), 여기서 정의되는 메소드의 일부를 오버라이드(override) 합니다.

도입된 버젼:
JDK1. 1
관련 항목:
BufferedReader , LineNumberReader , CharArrayReader , InputStreamReader , FileReader , FilterReader , PushbackReader , PipedReader , StringReader , Writer

필드의 개요
protected  Object lock
          이 스트림에 대한 처리의 동기에게 사용하는 객체입니다.
 
생성자 의 개요
protected Reader ()
          리더 자체로 Critical Section이 동기 하는 문자 스트림 리더를 새롭게 작성합니다.
protected Reader (Object  lock)
          지정된 객체로 Critical Section이 동기 하는 문자 스트림 리더를 새롭게 작성합니다.
 
메소드의 개요
abstract  void close ()
          스트림을 닫아, 거기에 관련하는 모든 system resource를 해제합니다.
 void mark (int readAheadLimit)
          스트림의 현재 위치에 마크를 설정합니다.
 boolean markSupported ()
          이 스트림이 mark() 오퍼레이션을 지원할지 어떨지를 판정합니다.
 int read ()
          단일의 문자를 읽어들입니다.
 int read (char[] cbuf)
          배열에 문자를 읽어들입니다.
abstract  int read (char[] cbuf, int off, int len)
          배열의 일부에 문자를 읽어들입니다.
 int read (CharBuffer  target)
          지정된 문자 버퍼에 캐릭터 라인을 읽어들입니다.
 boolean ready ()
          이 스트림이 읽어들여 가능한가 어떤가를 판정합니다.
 void reset ()
          스트림을 리셋 합니다.
 long skip (long n)
          문자를 스킵 합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

lock

protected Object  lock
이 스트림에 대한 처리의 동기에게 사용하는 객체입니다. 효율을 자주(잘) 하기 위한(해), 문자 스트림 객체는, 다른 객체를 사용해 Critical Section을 보호할 수가 있습니다. 그 때문에, 서브 클래스에서는 this 는 아니고 이 필드의 객체를 사용하는지, 동기화한 메소드를 사용하도록 해 주세요.

생성자 의 상세

Reader

protected Reader()
리더 자체로 Critical Section이 동기 하는 문자 스트림 리더를 새롭게 작성합니다.


Reader

protected Reader(Object  lock)
지정된 객체로 Critical Section이 동기 하는 문자 스트림 리더를 새롭게 작성합니다.

파라미터:
lock - 동기 하는 객체
메소드의 상세

read

public int read(CharBuffer  target)
         throws IOException 
지정된 문자 버퍼에 캐릭터 라인을 읽어들입니다. 버퍼는, put 조작의 결과에 의해 변경되는 이외는, 캐릭터 라인 그대로의 리포지터리(repository)로서 사용됩니다. 버퍼의 후립핑 (반전)이나 되감기 (되감아) 하행 깨지지 않습니다.

정의:
인터페이스 Readable 내의 read
파라미터:
target - 캐릭터 라인을 읽어들이는 버퍼
반환값:
버퍼에 추가된 문자의 수. 문자의 소스가 마지막 위치에 있는 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우
NullPointerException - target 가 null 의 경우
ReadOnlyBufferException - target 가 읽어내 전용 버퍼의 경우
도입된 버젼:
1.5

read

public int read()
         throws IOException 
단일의 문자를 읽어들입니다. 이 메소드는 1 문자가 읽히는지, 입출력 에러가 발생하든가, 혹은 스트림의 마지막에 이를 때까지 블록 합니다.

유효한 단일 문자의 입력을 지원하기 위한 서브 클래스에서는, 이 메소드를 오버라이드(override) 합니다.

반환값:
0 ~ 65535 (0x00-0xffff)의 범위의 정수로서의, 읽힌 문자. 스트림의 마지막에 이르렀을 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우

read

public int read(char[] cbuf)
         throws IOException 
배열에 문자를 읽어들입니다. 이 메소드는 입력의 일부가 유효하게 되는지, 입출력 에러가 발생하든가, 혹은 스트림의 마지막에 이를 때까지 블록 합니다.

파라미터:
cbuf - 전송처 버퍼
반환값:
읽힌 문자수. 스트림의 마지막에 이르렀을 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우

read

public abstract int read(char[] cbuf,
                         int off,
                         int len)
                  throws IOException 
배열의 일부에 문자를 읽어들입니다. 이 메소드는 입력의 일부가 유효하게 되는지, 입출력 에러가 발생하든가, 혹은 스트림의 마지막에 이를 때까지 블록 합니다.

파라미터:
cbuf - 전송처 버퍼
off - 문자의 포함 개시 오프셋(offset)
len - 읽어들이는 문자의 최대수
반환값:
읽힌 문자수. 스트림의 마지막에 이르렀을 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우

skip

public long skip(long n)
          throws IOException 
문자를 스킵 합니다. 이 메소드는, 문자가 읽히는지, 입출력 에러가 발생하든가, 혹은 스트림의 마지막에 이를 때까지 블록 합니다.

파라미터:
n - 스킵 하는 문자수
반환값:
실제로 스킵 한 문자수
예외:
IllegalArgumentException - n 가 0 보다 작은 값의 경우
IOException - 입출력 에러가 발생했을 경우

ready

public boolean ready()
              throws IOException 
이 스트림이 읽어들여 가능한가 어떤가를 판정합니다.

반환값:
다음의 read()가 입력을 블록 하지 않는 것이 확실한 경우는 true, 그렇지 않은 경우는 false. false 가 돌려주어져도, 다음의 read가 확실히 블록 한다는 것이 아니다
예외:
IOException - 입출력 에러가 발생했을 경우

markSupported

public boolean markSupported()
이 스트림이 mark() 오퍼레이션을 지원할지 어떨지를 판정합니다. 디폴트 구현은 항상 false 를 돌려줍니다. 서브 클래스는 이 메소드를 오버라이드(override) 할 필요가 있습니다.

반환값:
이 스트림이 mark 오퍼레이션을 지원하는 경우에 한정해 true

mark

public void mark(int readAheadLimit)
          throws IOException 
스트림의 현재 위치에 마크를 설정합니다. 이후의 reset()의 호출에서는, 이 정도치에의 스트림의 재배치가 시도됩니다. 모든 문자 입력 스트림로 mark() 오퍼레이션이 지원되고 있는 것은 아닙니다.

파라미터:
readAheadLimit - 마크를 보관 유지하면서 읽어들일 수가 있는 문자수의 상한. 이 수의 문자를 읽어들인 후에 스트림을 리셋 하려고 하면(자) 실패하는 경우가 있다
예외:
IOException - 스트림이 mark()를 지원하지 않는 경우, 또는 그 외의 입출력 에러가 발생했을 경우

reset

public void reset()
           throws IOException 
스트림을 리셋 합니다. 스트림에 마크가 설정되어 있는 경우는, 마크에 재배치하려고 합니다. 마크가 설정되어 있지 않은 경우는, 개시 위치에의 재배치 등, 개개의 스트림에 적절한 방법으로 리셋를 시도합니다. 모든 문자 입력 스트림로 reset() 오퍼레이션이 지원되고 있는 것은 아닙니다. 또, mark()를 지원하지 않고 reset()를 지원하는 것도 있습니다.

예외:
IOException - 스트림에 마크가 설정되지 않았던 경우, 또는 마크의 설정이 무효가 되었을 경우, 또는 스트림이 reset()를 지원하지 않는 경우, 또는 다른 입출력 에러가 발생했을 경우

close

public abstract void close()
                    throws IOException 
스트림을 닫아, 거기에 관련하는 모든 system resource를 해제합니다. 스트림이 닫혀진 뒤에 read(), ready(), mark(), reset(), 또는 skip()를 호출하면(자), IOException 가 throw 됩니다. 벌써 닫혀지고 있는 스트림을 닫아도, 무슨 영향도 없습니다.

정의:
인터페이스 Closeable 내의 close
예외:
IOException - 입출력 에러가 발생했을 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.