|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.io.InputStream
public abstract class InputStream
이 abstract 클래스는, 바이트 입력 스트림을 표현하는 모든 클래스의 슈퍼 클래스입니다.
InputStream
의 서브 클래스를 정의할 필요가 있는 어플리케이션은, 반드시 입력의 다음의 바이트를 돌려주는 메소드를 제공하지 않으면 안됩니다.
BufferedInputStream
,
ByteArrayInputStream
,
DataInputStream
,
FilterInputStream
,
read()
,
OutputStream
,
PushbackInputStream
생성자 의 개요 | |
---|---|
InputStream ()
|
메소드의 개요 | |
---|---|
int |
available ()
이 입력 스트림의 메소드의 다음의 호출에 의해, 블록 하지 않고 이 입력 스트림로부터 읽어들일 수가 있는 (또는 스킵 할 수 있다) 추정 바이트수를 돌려줍니다. |
void |
close ()
이 입력 스트림을 닫아, 그 스트림에 관련하는 모든 system resource를 해제합니다. |
void |
mark (int readlimit)
이 입력 스트림의 현재 위치에 마크를 설정합니다. |
boolean |
markSupported ()
입력 스트림이 mark 와 reset 메소드를 지원하고 있을지 어떨지를 판정합니다. |
abstract int |
read ()
입력 스트림로부터 데이터의 다음의 바이트를 읽어들입니다. |
int |
read (byte[] b)
입력 스트림로부터 수바이트를 읽어들여, 그것을 버퍼 배열 b 에 포함합니다. |
int |
read (byte[] b,
int off,
int len)
최대 len 바이트까지의 데이터를, 입력 스트림로부터 바이트 배열에 읽어들입니다. |
void |
reset ()
이 스트림의 위치를, 입력 스트림로 마지막에 mark 메소드가 불려 갔을 때의 마크 위치에 재설정합니다. |
long |
skip (long n)
이 입력 스트림로부터 n 바이트분을 스킵 및 파기합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public InputStream()
메소드의 상세 |
---|
public abstract int read() throws IOException
0
~ 255
의 범위의 int
로서 돌려주어집니다. 스트림의 마지막에 이르렀기 때문에 읽어들이는 바이트가 없는 경우는, 값 -1
이 돌려주어집니다. 입력 데이터를 읽어들일 수 있게 되는지, 파일의 마지막이 검출되는지, 또는 예외가 발생할 때까지, 이 메소드는 블록 합니다.
서브 클래스는, 이 메소드의 구현을 제공하지 않으면 안됩니다.
-1
IOException
- 입출력 에러가 발생했을 경우public int read(byte[] b) throws IOException
b
에 포함합니다. 실제로 읽힌 바이트수는 정수로서 돌려주어집니다. 이 메소드는, 입력 데이터를 읽어들일 수 있게 되는지, 파일의 마지막이 검출되든가, 혹은 예외가 throw 될 때까지 블록 합니다.
b
의 길이가 0 의 경우는, 바이트는 읽히지 않고,0
이 돌려주어집니다. 그렇지 않은 경우는, 적어도 1 바이트를 읽어들이려고 합니다. 스트림이 파일의 마지막에 이르렀기 때문에 읽어들이는 바이트가 없는 경우는 값 -1
이 돌려주어집니다. 그렇지 않은 경우는, 적어도 1 바이트가 읽혀b
에 포함됩니다.
최초로 읽힌 바이트는 요소 b[0]
에 포함되어 다음의 바이트는 b[1]
에 포함되어 그 이후도 이와 같이 계속됩니다. 읽히는 바이트수의 상한은 b
의 길이와 같습니다. 실제로 읽히는 바이트수를 k 로 하면(자), 이러한 바이트는 요소 b[0]
~ b[
k-1]
에 포함되어 요소 b[
k]
~ b[b.length-1]
는 영향을 받지 않습니다.
InputStream
클래스의 read(b)
메소드의 효과는, 이하와 같습니다.
read(b, 0, b.length)
b
- 데이터의 read처의 버퍼
-1
IOException
- 파일의 마지막에 이르고 있는 것 이외의 이유로써 최초의 바이트를 읽어들일 수 없는 경우, 입력 스트림이 닫혀졌을 경우, 또는 그 외의 입출력 에러가 발생했을 경우
NullPointerException
- b
가 null
의 경우read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
바이트까지의 데이터를, 입력 스트림로부터 바이트 배열에 읽어들입니다. len
바이트까지의 read가 시행됩니다만, 읽히는 바이트수는 좀 더 적은 경우도 있습니다. 실제로 읽힌 바이트수는 정수로서 돌려주어집니다.
이 메소드는, 입력 데이터를 읽어들일 수 있게 되는지, 파일의 마지막이 검출되든가, 혹은 예외가 throw 될 때까지 블록 합니다.
len
가 0 의 경우, 바이트는 읽히지 않고,0
이 돌려주어집니다. 그렇지 않은 경우는, 적어도 1 바이트를 읽어들이려고 합니다. 스트림이 파일의 마지막에 이르렀기 때문에 읽어들이는 바이트가 없는 경우는 값 -1
이 돌려주어집니다. 그렇지 않은 경우는, 적어도 1 바이트가 읽혀b
에 포함됩니다.
최초로 읽힌 바이트는 요소 b[off]
에 포함되어 다음의 바이트는 b[off+1]
에 포함되어 그 이후도 이와 같이 계속됩니다. 읽히는 바이트수의 상한은 len
와 같습니다. 실제로 읽히는 바이트수를 k 로 하면(자), 이러한 바이트는 요소 b[off]
~ b[off+
k-1]
에 포함되어 요소 b[off+
k]
~ b[off+len-1]
는 영향을 받지 않습니다.
모든 경우에, 요소 b[0]
~ b[off]
및 요소 b[off+len]
~ b[b.length-1]
는 영향을 받지 않습니다.
InputStream
클래스의 read(b,
off,
len)
메소드는, 단순하게 read()
메소드를 반복해 호출합니다. 최초의 호출의 결과가 IOException
인 경우는, 그 예외는 read(b,
off,
len)
메소드의 호출로부터 돌려주어집니다. 그 후의 read()
의 호출 결과가 IOException
가 되었을 경우는, 파일의 마지막에 이르렀을 경우와 같이 예외가 캐치 되어 처리됩니다. 즉, 그 시점까지 읽힌 바이트는 b
에 포함되어 예외가 발생하기까지 읽힌 바이트수가 돌려주어집니다. 이 메소드의 디폴트의 구현은, 요구된 양 len
의 입력 데이터가 읽히는지, 파일의 마지막이 검출되든가, 혹은 예외가 throw 될 때까지 블록 합니다. 서브 클래스에서는, 이 메소드를 보다 효율적으로 구현하는 것을 추천합니다.
b
- 데이터의 read처의 버퍼off
- 데이터가 기입해지는 배열 b
의 개시 오프셋(offset)len
- 읽어들이는 최대 바이트수
-1
IOException
- 파일의 마지막에 이르고 있는 것 이외의 이유로써 최초의 바이트를 읽어들일 수 없는 경우, 입력 스트림이 닫혀졌을 경우, 또는 그 외의 입출력 에러가 발생했을 경우
NullPointerException
- b
가 null
의 경우
IndexOutOfBoundsException
- off
가 부의 경우,len
가 부의 경우, 또는 len
가 b.length - off
보다 큰 경우read()
public long skip(long n) throws IOException
n
바이트분을 스킵 및 파기합니다. 다양한 이유로부터,skip
메소드는 지정보다 적은 바이트수 밖에 스킵 하지 않는 것이 있습니다. 0
의 경우도 있습니다. 이 스킵은 복수의 조건에 기인할 가능성이 있습니다만, 생각되는 유일한 경우는,n
바이트가 스킵 되기 전에 파일의 마지막에 이르렀을 경우입니다. 스킵 된 실제의 바이트수가 돌려주어집니다. n
가 부의 경우, 바이트는 스킵 되지 않습니다.
이 클래스의 skip
메소드는 바이트 배열을 작성해,n
바이트가 읽힐 때까지, 또는 스트림의 마지막에 이를 때까지 반복 그 중에 읽어들입니다. 서브 클래스에서 이 메소드를 구현하는 경우는, 보다 효율적으로 구현해 주세요. 예를 들어, 구현은 시크의 기능에 의존할 가능성이 있습니다.
n
- 스킵 하는 바이트수
IOException
- 스트림이 시크를 지원하지 않는 경우, 또는 그 외의 입출력 에러가 발생했을 경우public int available() throws IOException
InputStream
의 구현에는, 스트림의 합계 바이트수를 돌려주는 것도 있습니다만, 많은 구현은 돌려주지 않는 것에 주의해 주세요. 이 스트림의 데이터를 모두 보관 유지하기 위한 버퍼를 할당하는데, 이 메소드의 반환값을 사용하는 것은, 적절하지는 않습니다.
close()
메소드의 호출에 의해 이 입력 스트림이 닫혀졌을 경우, 이 메소드의 서브 클래스의 구현은 IOException
를 throw 하는 일이 있습니다.
InputStream
클래스의 available
메소드는 항상 0
을 돌려줍니다.
서브 클래스는 이 메소드를 오버라이드(override) 할 필요가 있습니다.
0
IOException
- 입출력 에러가 발생했을 경우public void close() throws IOException
InputStream
의 close
메소드는 아무것도 실시하지 않습니다.
Closeable
내의 close
IOException
- 입출력 에러가 발생했을 경우public void mark(int readlimit)
reset
메소드를 호출하면(자), 마지막에 마크가 설정된 위치에 스트림을 재설정하기 위해(때문에), 다음번의 read 조작에서는 같은 바이트로부터 읽어들이게 됩니다.
인수 readlimit
는 이 입력 스트림에 대해서, 마크 위치가 무효가 되기 전에 이 인수가 지정하는 바이트수를 읽어들이도록(듯이) 지시합니다.
mark
의 범용 규약을 다음에 나타냅니다. markSupported
메소드가 true
를 돌려주는 경우, 스트림은 mark
의 호출의 후에 읽힌 모든 바이트를 기억해,reset
메소드가 불려 갔을 때에 그러한 같은 바이트를 다시 공급하는 대로 준비합니다. 다만,reset
가 불려 가기 전에 readlimit
보다 많이 바이트가 스트림로부터 읽히고 있는 경우는, 스트림은 데이터를 기억할 필요는 없습니다.
닫혀진 스트림에 마크를 설정할 경우에, 스트림에 영향을 주어서는 안됩니다.
InputStream
의 mark
메소드는 아무것도 실시하지 않습니다.
readlimit
- 마크 위치가 무효가 되기 전에 읽어들여 가능한 최대한도의 바이트수reset()
public void reset() throws IOException
mark
메소드가 불려 갔을 때의 마크 위치에 재설정합니다.
reset
메소드의 일반적인 규약을 다음에 나타냅니다.
markSupported
메소드가 true
를 돌려주는 경우
mark
메소드가 불려 가지 않은 경우, 혹은 mark
가 마지막에 불려 가고 나서, 스트림로부터 읽힌 바이트수가 마지막 호출의 mark
의 인수보다 많은 경우는,IOException
가 throw 되는 일이 있다
IOException
가 throw 되지 않는 경우,mark
가 마지막에 불려 가고 나서 (mark
가 불려 가지 않은 경우는 파일의 선두로부터) 읽힌 모든 바이트가 read
메소드의 이후의 호출 측에 다시 공급되는 것 같은 상태에 스트림이 리셋 된다. reset
의 호출의 시점에서 다음의 입력 데이터가 되어 있었음이 분명한 바이트가 계속된다 markSupported
메소드가 false
를 돌려주는 경우
reset
의 호출은 IOException
를 throw 하는 경우가 있다
IOException
가 throw 되지 않는 경우, 스트림은, 입력 스트림의 특정의 타입 및 그 작성 방법으로 의존하는 고정 상태에 리셋 된다. read
메소드의 이후의 호출 측에 공급되는 바이트는, 입력 스트림의 특정의 타입에 의존한다 InputStream
클래스의 reset
메소드는,IOException
를 throw 하는 이외 아무것도 실시하지 않습니다.
IOException
- 스트림에 마크가 설정되어 있지 않았던 경우, 또는 마크가 무효가 되어 있었을 경우mark(int)
,
IOException
public boolean markSupported()
mark
와 reset
메소드를 지원하고 있을지 어떨지를 판정합니다. mark
및 reset
가 지원되고 있을지 어떨지는, 입력 스트림 인스턴스 마다 다릅니다. InputStream
의 markSupported
메소드는 false
를 돌려줍니다.
- 반환값:
- 이 스트림 인스턴스가 mark 및 reset 메소드를 지원하고 있는 경우는
true
, 지원하고 있지 않는 경우는 false
- 관련 항목:
mark(int)
,
reset()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.