JavaTM Platform
Standard Ed. 6

java.io
클래스 BufferedReader

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


public class BufferedReader
extends Reader

문자, 배열, 행을 버퍼링 하는 것에 의해, 문자형 입력 스트림로부터 텍스트를 효율 좋게 읽어들입니다.

버퍼의 사이즈는, 디폴트 값대로 하는 일도, 특정의 값을 지정할 수도 있습니다. 디폴트 값는, 일반적으로의 사용법으로는 충분한 크기입니다.

일반적으로, Reader 에 대해서 읽어들여 요구가 나오면(자), 거기에 대응하는 기본이 되는 문자형 스트림 또는 바이트 스트림에의 읽어들여 요구가 발행됩니다. 이 때문에, FileReader 나 InputStreamReader 와 같이 read() 오퍼레이션의 효율의 좋지 않는 Reader 에서는, 그 주위를 BufferedReader 로 랩 하는 것을 추천합니다. 예를 들어, 다음의 예는 지정된 파일로부터의 입력을 버퍼 합니다.

BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
 
버퍼링 하지 않고 read(), readLine()를 사용하면(자), 호출할 것에 파일로부터 바이트를 읽어들여, 문자형으로 변환해, 그때마다 복귀하므로, 매우 효율이 나빠집니다.

텍스트 입력에 대해서 DataInputStream 를 사용하는 프로그램은, 각 DataInputStream 를 적절한 BufferedReader 로 바꾸어 넣는 것에 의해 로컬라이즈 할 수가 있습니다.

도입된 버젼:
JDK1. 1
관련 항목:
FileReader , InputStreamReader

필드의 개요
 
클래스 java.io. Reader 로부터 상속된 필드
lock
 
생성자 의 개요
BufferedReader (Reader  in)
          디폴트 사이즈의 버퍼로 버퍼링 된, 문자형 입력 스트림을 작성합니다.
BufferedReader (Reader  in, int sz)
          지정된 사이즈의 버퍼로 버퍼링 된, 문자형 입력 스트림을 작성합니다.
 
메소드의 개요
 void close ()
          스트림을 닫아, 거기에 관련하는 모든 system resource를 해제합니다.
 void mark (int readAheadLimit)
          스트림의 현재 위치에 마크를 설정합니다.
 boolean markSupported ()
          이 스트림이, 실행하는 mark() 조작을 지원할지 어떨지를 통지합니다.
 int read ()
          단일의 문자를 읽어들입니다.
 int read (char[] cbuf, int off, int len)
          배열의 일부에 문자를 읽어들입니다.
 String readLine ()
          텍스트행을 읽어들입니다.
 boolean ready ()
          스트림이 읽어들여 가능한가 어떤가를 돌려줍니다.
 void reset ()
          스트림을, 가장 새로운 마크 위치에 리셋 합니다.
 long skip (long n)
          문자를 스킵 합니다.
 
클래스 java.io. Reader 로부터 상속된 메소드
read , read
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

BufferedReader

public BufferedReader(Reader  in,
                      int sz)
지정된 사이즈의 버퍼로 버퍼링 된, 문자형 입력 스트림을 작성합니다.

파라미터:
in - Reader
sz - 입력 버퍼의 사이즈
예외:
IllegalArgumentException - sz 가 0 이하의 경우

BufferedReader

public BufferedReader(Reader  in)
디폴트 사이즈의 버퍼로 버퍼링 된, 문자형 입력 스트림을 작성합니다.

파라미터:
in - Reader
메소드의 상세

read

public int read()
         throws IOException 
단일의 문자를 읽어들입니다.

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

read

public int read(char[] cbuf,
                int off,
                int len)
         throws IOException 
배열의 일부에 문자를 읽어들입니다.

이 메소드는,Reader 클래스의 대응하는 read 메소드의 범용 규약을 구현합니다. 보다 편리하게, 이 메소드는 기본이 되는 스트림의 read 메소드를 반복해 호출해, 가능한 한 많은 문자수를 읽어들이려고 합니다. 이 read 의 반복은, 이하의 조건의 1 개가 true 가 될 때까지 행해집니다.

기본이 되는 스트림의 최초의 read 가 파일의 마지막을 나타내는 -1 을 돌려주면(자), 이 메소드는 -1 을 돌려줍니다. 그렇지 않은 경우, 이 메소드는 실제로 읽힌 문자수를 돌려줍니다.

이 클래스의 서브 클래스는, 같은 방법으로 가능한 한 많은 문자수를 읽어들이는 것이 추천 됩니다. 다만, 이것은 필수가 아닙니다.

일반적으로 이 메소드는, 이 스트림의 문자 버퍼로부터 문자를 취득해, 필요에 따라서 기본이 되는 스트림로부터 그 버퍼를 묻습니다. 그러나, 버퍼가 빈 상태(empty)에서, 마크가 무효로, 요구된 길이가 버퍼와 같은 크기 이상의 경우, 이 메소드는 기본이 되는 스트림로부터, 지정된 배열에 직접 문자를 읽어들입니다. 이 때문에, 여분의 BufferedReader 가, 데이터를 불필요하게 카피하는 일이 없습니다.

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

readLine

public String  readLine()
                throws IOException 
텍스트행을 읽어들입니다. 1 행의 끝은, 개행 ('\n')인가, 복귀 ('\r'), 또는 복행으로 거기에 계속되는 개행의 어느쪽이든으로 인식됩니다.

반환값:
행의 내용을 포함한 캐릭터 라인, 다만 행의 끝 문자는 포함하지 않는다. 스트림의 마지막에 이르고 있는 경우는 null
예외:
IOException - 입출력 에러가 발생했을 경우

skip

public long skip(long n)
          throws IOException 
문자를 스킵 합니다.

오버라이드(override):
클래스 Reader 내의 skip
파라미터:
n - 스킵 하는 문자수
반환값:
실제로 스킵 한 문자수
예외:
IllegalArgumentException - n 가 0 보다 작은 값의 경우
IOException - 입출력 에러가 발생했을 경우

ready

public boolean ready()
              throws IOException 
스트림이 읽어들여 가능한가 어떤가를 돌려줍니다. 버퍼링 된 문자형 스트림은, 공백이 아닌지, 또는 기본이 되는 문자형 스트림이 읽어들여 가능하다라고 나무에 읽어들여 가능합니다.

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

markSupported

public boolean markSupported()
이 스트림이, 실행하는 mark() 조작을 지원할지 어떨지를 통지합니다.

오버라이드(override):
클래스 Reader 내의 markSupported
반환값:
이 스트림이 mark 오퍼레이션을 지원하는 경우에 한정해 true

mark

public void mark(int readAheadLimit)
          throws IOException 
스트림의 현재 위치에 마크를 설정합니다. 이후 reset()를 호출하면(자), 스트림의 위치가 이 정도치로 변경됩니다.

오버라이드(override):
클래스 Reader 내의 mark
파라미터:
readAheadLimit - 마크를 보관 유지하면서 읽어들일 수가 있는 문자수의 상한. 이 상한치의 전후의 수의 문자를 읽어들인 후에 스트림을 리셋 하려고 하면(자) 실패하는 경우가 있다. 입력 버퍼의 사이즈보다 큰 한계치를 지정하면(자), 그 사이즈가 한계보다 작지 않은 새로운 버퍼를 할당할 수 있다. 그 때문에, 큰 값은 주의해 사용할 필요가 있다
예외:
IllegalArgumentException - readAheadLimit 가 0 보다 작은 값의 경우
IOException - 입출력 에러가 발생했을 경우

reset

public void reset()
           throws IOException 
스트림을, 가장 새로운 마크 위치에 리셋 합니다.

오버라이드(override):
클래스 Reader 내의 reset
예외:
IOException - 스트림에 마크를 설정할 수 없었던 경우, 또는 마크가 무효가 되었을 경우

close

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

정의:
인터페이스 Closeable 내의 close
정의:
클래스 Reader 내의 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 도 참조해 주세요.