|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.io.Reader
java.io.BufferedReader
public class BufferedReader
문자, 배열, 행을 버퍼링 하는 것에 의해, 문자형 입력 스트림로부터 텍스트를 효율 좋게 읽어들입니다.
버퍼의 사이즈는, 디폴트 값대로 하는 일도, 특정의 값을 지정할 수도 있습니다. 디폴트 값는, 일반적으로의 사용법으로는 충분한 크기입니다.
일반적으로, Reader 에 대해서 읽어들여 요구가 나오면(자), 거기에 대응하는 기본이 되는 문자형 스트림 또는 바이트 스트림에의 읽어들여 요구가 발행됩니다. 이 때문에, FileReader 나 InputStreamReader 와 같이 read() 오퍼레이션의 효율의 좋지 않는 Reader 에서는, 그 주위를 BufferedReader 로 랩 하는 것을 추천합니다. 예를 들어, 다음의 예는 지정된 파일로부터의 입력을 버퍼 합니다.
BufferedReader in = new BufferedReader(new FileReader("foo.in"));버퍼링 하지 않고 read(), readLine()를 사용하면(자), 호출할 것에 파일로부터 바이트를 읽어들여, 문자형으로 변환해, 그때마다 복귀하므로, 매우 효율이 나빠집니다.
텍스트 입력에 대해서 DataInputStream 를 사용하는 프로그램은, 각 DataInputStream 를 적절한 BufferedReader 로 바꾸어 넣는 것에 의해 로컬라이즈 할 수가 있습니다.
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 |
생성자 의 상세 |
---|
public BufferedReader(Reader in, int sz)
in
- Readersz
- 입력 버퍼의 사이즈
IllegalArgumentException
- sz 가 0 이하의 경우public BufferedReader(Reader in)
in
- Reader메소드의 상세 |
---|
public int read() throws IOException
Reader
내의 read
IOException
- 입출력 에러가 발생했을 경우public int read(char[] cbuf, int off, int len) throws IOException
이 메소드는,
클래스의 대응하는 Reader
메소드의 범용 규약을 구현합니다. 보다 편리하게, 이 메소드는 기본이 되는 스트림의 read
read
메소드를 반복해 호출해, 가능한 한 많은 문자수를 읽어들이려고 합니다. 이 read
의 반복은, 이하의 조건의 1 개가 true 가 될 때까지 행해집니다.
read
메소드가, 파일의 마지막을 나타내는 -1
을 돌려주었다
ready
메소드가, 그 이상의 입력 요구가 블록 되는 것을 나타내는 false
를 돌려주었다
read
가 파일의 마지막을 나타내는 -1
을 돌려주면(자), 이 메소드는 -1
을 돌려줍니다. 그렇지 않은 경우, 이 메소드는 실제로 읽힌 문자수를 돌려줍니다.
이 클래스의 서브 클래스는, 같은 방법으로 가능한 한 많은 문자수를 읽어들이는 것이 추천 됩니다. 다만, 이것은 필수가 아닙니다.
일반적으로 이 메소드는, 이 스트림의 문자 버퍼로부터 문자를 취득해, 필요에 따라서 기본이 되는 스트림로부터 그 버퍼를 묻습니다. 그러나, 버퍼가 빈 상태(empty)에서, 마크가 무효로, 요구된 길이가 버퍼와 같은 크기 이상의 경우, 이 메소드는 기본이 되는 스트림로부터, 지정된 배열에 직접 문자를 읽어들입니다. 이 때문에, 여분의 BufferedReader
가, 데이터를 불필요하게 카피하는 일이 없습니다.
Reader
내의 read
cbuf
- 전송처 버퍼off
- 문자의 포함 개시 오프셋(offset)len
- 읽어들이는 문자의 최대수
IOException
- 입출력 에러가 발생했을 경우public String readLine() throws IOException
IOException
- 입출력 에러가 발생했을 경우public long skip(long n) throws IOException
Reader
내의 skip
n
- 스킵 하는 문자수
IllegalArgumentException
- n
가 0 보다 작은 값의 경우
IOException
- 입출력 에러가 발생했을 경우public boolean ready() throws IOException
Reader
내의 ready
IOException
- 입출력 에러가 발생했을 경우public boolean markSupported()
Reader
내의 markSupported
public void mark(int readAheadLimit) throws IOException
Reader
내의 mark
readAheadLimit
- 마크를 보관 유지하면서 읽어들일 수가 있는 문자수의 상한. 이 상한치의 전후의 수의 문자를 읽어들인 후에 스트림을 리셋 하려고 하면(자) 실패하는 경우가 있다. 입력 버퍼의 사이즈보다 큰 한계치를 지정하면(자), 그 사이즈가 한계보다 작지 않은 새로운 버퍼를 할당할 수 있다. 그 때문에, 큰 값은 주의해 사용할 필요가 있다
IllegalArgumentException
- readAheadLimit 가 0 보다 작은 값의 경우
IOException
- 입출력 에러가 발생했을 경우public void reset() throws IOException
Reader
내의 reset
IOException
- 스트림에 마크를 설정할 수 없었던 경우, 또는 마크가 무효가 되었을 경우public void close() throws IOException
Reader
의 기술:
Closeable
내의 close
Reader
내의 close
IOException
- 입출력 에러가 발생했을 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.